2014-12-24 2 views
1

Согласно this tutorial, следующий код должен предотвращать переустановку и переустановку той же версии приложения.Как следует предотвращать понижение рейтинга и переустановку одной и той же версии приложения в WIX?

<CustomAction Id='AlreadyUpdated' Error='Foobar 1.0 has already been updated to 1.0.1 or newer.' /> 
    <CustomAction Id='NoDowngrade' Error='A later version of [ProductName] is already installed.' /> 

    <InstallExecuteSequence> 
    <Custom Action='AlreadyUpdated' After='FindRelatedProducts'>SELFFOUND</Custom> 
    <Custom Action='NoDowngrade' After='FindRelatedProducts'>NEWERFOUND</Custom> 
    </InstallExecuteSequence> 

Как должна функционировать эта функция?
Должно ли быть сообщение об ошибке, и установка должна быть остановлена?
Как я вижу, этот пример не работает вообще - можно понизить и установить одну и ту же версию приложения несколько раз с помощью команды msiexec/i SampleUpgrade.msi REINSTALLMODE = vomus.
Есть ли какие-либо сообщения об ошибках.
Я использую WIX 3.8, Windows 7.

ответ

1

Возможно, у вас есть некоторые предположения, о которых мы не знаем, но вы не можете установить одну и ту же установку MSI дважды. Установленный продукт определяется его ProductCode и PackageCode, но что более важно, что вы пытаетесь выполнить? Если вы хотите, чтобы несколько копий одного и того же продукта затем (например) делали другое с новым кодом ProductCode и PackageCode. Если вы хотите обновить существующий установленный продукт новыми файлами, сделайте крупное обновление. Если по какой-то причине это означает повторную установку той же самой настройки снова, чтобы заменить существующую, то элемент MajorUpgrade WiX с использованием AllowSameSamneVersionUpgrades может быть тем, что вы хотите. Командная строка REINSTALLMODE является способом обновления существующего установленного продукта, а не установки другой копии.

Другими словами, не зная своей цели, неясно, как доставить вас туда, куда вы хотите отправиться.

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