Это немного гипотетический вопрос (в ожидании надлежащего расследования), но я считаю, что это может вызвать проблемы.WiX выборочное исправление и C#
Приложение C# содержит exe и некоторые DLL. Visual Studio/msbuild строит их немного по-разному на каждой сборке (обновленные временные метки/указатели/etc), но каждая сборка функционально идентична. Сервер сборки обрабатывает ежедневные/выпускные сборки для согласованности и разгрузки.
Уже выпущенный v1.0.0 с использованием WiX для упаковки и загрузки, я исправляю некоторые проблемы lib_1.dll
и выпускаю v1.0.1. На этот раз я также создаю патч, который содержит только разницу lib_1.dll
, чтобы сохранить размеры файлов. Все идет нормально.
Теперь забавная часть.
Я делаю дальнейшие изменения, но на этот раз до lib_3.dll
и выпуском v1.0.2. Я делаю еще один патч, на этот раз включая только разницу для lib_3.dll
. Итак, теперь исправление v1.0.0 до v1.0.1 работает, как и v1.0.1 - v1.0.2, но поскольку каждая сборка немного отличается, v1.0.0 - v1.0.1 - v1.0.2 либо сбой, либо в конечном итоге с поврежденными файлами из-за неправильной разницы. Гипотетически.
Итак, вопрос в том, как это можно решить? Есть ли простой способ управлять двоичными файлами, поэтому в инсталляторы включены только реальные изменения? Какой-то способ сравнения двоичных файлов, которые игнорируют изменения для каждой сборки? Или что-то другое?