2015-05-27 2 views
0

Я попытался выполнить установку со следующими требованиями.
1. Должен справиться с серьезным обновлением и предотвратить понижение.
2. Должны обрабатывать незначительные обновления/обновления и предотвращать понижение.
3. Должны быть исправлены и предотвратить понижение.
И, конечно, все в одной упаковкеНевозможно предотвратить понижение рейтинга

До сих пор я столкнулся с одним препятствием за другим.
FindrelatedProducts не работает в режиме обслуживания, поэтому я не могу проверить другие продукты, установленные с тегом upgradeversion.
Не может быть ProductCode = «*», поскольку пиро не нравится создание патча.
Кроме того, я заметил, что предотвращение даунгрейда, построенный в соответствии с https://www.firegiant.com/wix/tutorial/upgrades-and-modularization/, действительно не работает запуск установки из командной строки с помощью переключателей REINSTALL = ALL и REINSTALLMODE = vomus. Похоже, что переключатели игнорируют настройки версии обновления.

Я почти уверен, что что-то пропустил, но я не вижу этого. Есть ли у кого-нибудь советы о том, как это сделать?

Мой апгрейд элемент выглядит

<Upgrade Id="put-guid-here"> 
    <UpgradeVersion OnlyDetect="yes" Property="SELFFOUND" Minimum="6.1.15119" 
        IncludeMinimum ="yes" Maximum="6.1.15124" IncludeMaximum="yes" /> 
    <UpgradeVersion OnlyDetect="yes" Property="NEWERFOUND" Minimum="6.1.15124" 
        IncludeMinimum="no" /> 
</Upgrade> 
+0

вы можете взглянуть на https://stackoverflow.com/questions/10461840/wix-prevent-downgrade-with-check-for-revision – mcy

+0

@mcy Теперь я запутался как * RemoveExistingProducts * запускается только первая установка. что заставило меня поверить, что мне нужно удалить статический * ProductCode *, и в этом случае patchbuild (pyro) не примет. Или я смотрю на неправильную вещь? –

+0

Мой elemnt обновление выглядит как ' ' –

ответ

0

Основные обновления требуют изменения ProductCode (и некоторых других вещей), чтобы установить новую версию и, и вы можете предотвратить понижены, потому что он встроен в Windows Installer.

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

Что означает, что никто не может выполнить переход вниз, выполнив незначительное обновление, если вы специально не создаете файл MSI с тем же ProductCode (как тот, который вы уже отправили), и с более низким ProductVersion, а затем сообщите людям, установите его с помощью REINSTALL и REINSTALLMODE. Вы на самом деле собираетесь это сделать? Это не похоже на ваш вопрос. Также обратите внимание, что если только файлы MSI, которые вы когда-либо отправляли, получили разные ProductCodes, тогда у вас никогда не будет проблемы.

Итак, все, что вам нужно, это основные обновления, и, возможно, вы будете создавать случайные заплатки. Так что вам не нужно беспокоиться о незначительных обновлениях, потому что там никогда не будет файлов MSI, которые могут быть использованы для этого.

+0

Thx, который очищает много вопросов для меня. –

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