По сути, ссылка GUID учитывает абсолютное местоположение установки, а не файл как таковой. Вы устанавливаете на новое место, вам нужен новый GUID компонента.
я есть приложение, которое мы переключаем на установщик WiX. Пока что, кажется, все идет хорошо. Единственная проблема, с которой я столкнулся, заключается в том, что, если загрузить и попытаться установить более старую версию, она делает это.
И это немного проблема. Если установлена более новая версия, я не хочу устанавливать более старую версию. Я думал, что проблема была с компонентом «Обновление», но я должен признать, что столкнулся со стеной. Как я могу изменить его, чтобы более старые версии видели, что уже установлена более новая версия, а не устанавливали ее?
Мой тестовый продукт теперь в версии 2.4 (самая новая версия, которую мы пытаемся выпустить). Он корректно обновляется до 2.4.1 или 2.5 или 3.0. Но если я делаю версию 3.0, а затем запускаю MSI для 2.4, он все равно добавляет ее.
Мой компонент обновления:
<Upgrade Id="PUT-GUID-HERE">
<UpgradeVersion Maximum="2.4" Property="PREVIOUSVERSIONSINSTALLED" />
<UpgradeVersion Minimum="1.0" Property="NEWERPRODUCTFOUND" OnlyDetect="yes" IncludeMinimum="no" />
</Upgrade>
Следовать за:
Следуя предложению Steins, я получил такую ошибку
«Дубликат символа« WixAction: InstallExecuteSequence / RemoveExistingProducts »найден»
После просмотра в файле Product.wxs под<InstallExecuteSequence>
Я должен был удалить<RemoveExistingProducts Sequence="6550" />
потому что это был дубликат, на который он ссылался. После этого установщик сработал, и старые версии больше не могут быть установлены поверх новых версий.