Установщик Microsoft: может ли он обновить продукт без изменения номера версии?

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

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

Каждая сборка 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 Installer не позволяет нам запускать эти MSI как обновления на наших тестовых установках. Мы должны полностью удалить существующий продукт и переустановить нужный MSI.

Есть ли способ создать наши MSI для применения обновлений независимо от штампа ProductVersion?

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

Спасибо!


person dripfeed    schedule 02.11.2010    source источник


Ответы (1)


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

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

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

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 позволяет мне гибко пересобирать сборки и поставлять их в виде исправлений, если это необходимо.

person Christopher Painter    schedule 02.11.2010
comment
Спасибо Кристофер. Наша цель состоит в том, чтобы иметь возможность выполнять полную установку или обновление продукта из регулярно автоматически создаваемого MSI, никогда не изменяя какую-либо часть его триады Major.Minor.Build. Похоже, это просто невозможно без изменения сценария установки между каждой перестройкой. Возможно, нам придется принять вашу схему ProductVersion и схему Microsoft. - person dripfeed; 03.11.2010