2013-11-20 4 views
3

Я хотел бы сделать установочный пакет в WIX, который обновит предыдущую версию моего продукта. Для этой цели я использую MajorUpgrade.MajorUpgrade без изменения ProductID в wix

Проблема в том, что я хочу сохранить ProductId в течение всего срока службы приложения без каких-либо изменений. Но MajorUpgrade требует разные ProductId для каждой версии. В противном случае отображается сообщение об ошибке «Другая версия уже установлена».

Как я могу выполнить обновление, сохраняя свой ProductId?

Благодаря загодя!

+1

Если вы хотите сохранить 'ProductId' без изменений, вы застряли либо с незначительным обновлением, либо с небольшим вариантом обновления. Если вам требуется серьезное обновление, вам необходимо изменить «ProductId». http://msdn.microsoft.com/en-us/library/aa370579(v=vs.85).aspx –

ответ

5

Для основных обновлений вы должны изменить ProductId. На самом деле я рекомендую автоматически генерировать ProductId каждый раз, когда установщик построен, имея значение «*» в качестве его значения. Таким образом, вы всегда будете иметь разное значение в каждой версии установщика, и вам будет разрешено выполнить серьезное обновление. Фактическое значение ProductId легко получить из результата сборки.

Но на самом деле вам необходимо сохранить жизненный цикл продукта - это UpgradeCode. Это значение вы должны выбрать один раз для своего приложения и сохранить его.

+1

Если у вас есть случайно сгенерированный идентификатор продукта каждый раз, когда вы строите MSI, как вы можете узнать идентификатор продукта для при выполнении чего-то вроде «msiexec/x (product-id)/qb». (Например, в продукте, который можно самостоятельно удалить). –

Смежные вопросы