Могу ли я сгенерировать патч (.msp) без образа обновления (.msi)
Я много гуглил, но информации по моему вопросу мало.
Краткий вопрос: "Предположим, у вас есть целевой образ (.msi), список измененных двоичных файлов, но у вас нет образа обновления. Как сделать патч на основе этих входных данных?",
Подробное описание:
В настоящее время мы используем TFS в качестве источника контроля. И каждый раз при создании нового MSI мы будем увеличивать AssemblyFileVersion всех проектов, независимо от того, был ли проект действительно изменен или нет в первую очередь. Это хорошо, когда нет необходимости делать патч.
Но, на самом деле, у нас действительно есть требование сделать патч сейчас. Я пытался создать патч, используя Purely WiX или Patch Creation Properties, но почти все проекты будут считаться измененными, когда мы будем напрямую использовать эти MSI.
Итак, если у меня есть три входа:
- Целевое изображение (.msi)
- Список действительно измененных двоичных файлов
- Upgrade Image(версия файла всех двоичных файлов увеличивается) <--- этот ввод может быть бесполезным
Как я могу использовать вышеуказанные входы для создания патча?
Заранее спасибо.
2 ответа
В качестве альтернативы ответу Филса, вы можете добавить переключатель игнорирования только для увеличенных файлов в вашем файле Patch Creative Properties.
<UpgradeFile File="YourFileID" Ignore="yes" />
см. http://wixtoolset.org/documentation/manual/v3/xsd/wix/upgradefile.html
В зависимости от того, сколько файлов нужно игнорировать, это может упростить метод Phils. Хотя, если вы получите список идентификаторов файловых таблиц (экспортируйте таблицу в orca и отредактируйте в Excel, скопируйте A3 вниз) и удалите все идентификаторы из действительно измененного списка, добавьте xml вокруг каждого идентификатора. займет много времени.
Вы все еще можете использовать обновленную сборку MSI при создании патча. Я не знаю всех вещей WiX, которые вам могут понадобиться, но я сделал именно то, что вы хотите сделать, установив IgnoreMissingSrcFiles в таблице TargetImages:
http://msdn.microsoft.com/en-us/library/aa372066(v=vs.85).aspx
и просто удалите все файлы, которые вы не хотите исправлять. Вы все равно используете изображения администратора для создания патча, поэтому у вас будут только два изображения администратора с файлами MSI и только те файлы, которые вы хотите исправить.