Microsoft Installer: может ли он обновить продукт без изменения номера версии? - PullRequest
1 голос
/ 02 ноября 2010

Мы хотим использовать популярную схему major.minor.update.build_number версий.Наше следующее обновление продукта будет версия 1.0.1.

Наш внутренний механизм управления конфигурацией производит сборки выпуска и ежедневные сборки, все из которых автоматически упаковываются как MSI.Разработчики и QA регулярно загружают сборки и обновляют тестовые стенды вместе с ними для проверки исправлений ошибок и т. Д.

Каждая сборка CM увеличивает поле build_number, поэтому версии сборок могут выглядеть примерно так:

1.0.1.001 // Release build  
1.0.1.002 // Daily build  
1.0.1.003 // Another Daily build  
1.0.1.004 // New Release build  

Наша проблема в том, что, поскольку наша ProductVersion не меняется, технология установщика Microsoft не позволяет нам запускать эти MSI как обновления на наших тестовых установках.Мы должны полностью удалить существующий продукт и переустановить нужный MSI.

Существует ли способ авторизации наших MSI для применения обновлений независимо от штампа ProductVersion?

Мы используем InstallShield.Есть ли альтернативная технология установки, которая позволила бы нам делать то, что мы хотим?

Спасибо!

1 Ответ

1 голос
/ 03 ноября 2010

Вы должны быть в состоянии сделать небольшое обновление в этой ситуации. Если ваша цель - выполнить серьезные обновления, вам следует изменить одно из первых трех полей свойства ProductVersion.

Если ваша цель - плыть вверх по течению, вам понадобится пользовательское действие, вставленное между FindRelatedProducts и RemoveExistingProducts, чтобы переопределить встроенную логику обнаружения продуктов MSI. По сути, вы захотите использовать API Msi для поиска установленных кодов продуктов для кода обновления.

Лично я рекомендую

Major.Minor.Build.Patch, поэтому моя увеличенная последовательность сборки равна

1.0.1.0 1.0.2.0 1.0.3.0 1.0.4.0 1.1.5.0 1.1.6.0 1.1.7.0

.0 позволяет мне гибко перестраивать сборки и при необходимости отправлять их как патчи.

...