Я создаю установщик для одного из наших продуктов. Установщик был сделан с WISE ранее, но мы хотели изменить это на wix с этим выпуском. Важно, чтобы наши пользователи удалили старую версию продукта перед установкой новой версии, и поэтому мне нужно проверить ключ в реестре, который был создан старой программой установки (ключ удаляется при удалении старой версии).
У меня есть условная проверка в wxs, вот так:
<!-- Check if older version of Product has been installed. Must be removed by user-->
<!-- The key below is set by the old installer. If it exists, the old version is there.-->
<Property Id="OLDKEY">
<RegistrySearch Id="OldRegKey" Root="HKLM" Key="SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Company Product för Product" Name="DisplayName" Type="raw"></RegistrySearch>
</Property>
<Condition Message="You need to uninstall the old version of Product before installing this one.">
OLDKEY
</Condition>
Вы заметите там шведского персонажа. Я подозреваю, что это может быть причиной некоторых проблем. Вот как я настроил, поскольку мне приходилось обрабатывать шведские символы:
<Product
Id="*"
Name="$(var.Manufacturer) $(var.ApplicationName)"
Language="1033"
Version="!(bind.FileVersion.Product.exe)"
Manufacturer="$(var.Manufacturer) AB"
UpgradeCode="[GUID]"
Codepage="1252"
>
Обратите внимание на кодовую страницу 1252.
Когда я установил и установил старую версию на машине, я нашел ключ в реестре, и установщик покажет мне сообщение. Если я удаляю старую версию, я вижу, что раздел реестра исчезает, но установщик все равно покажет мне сообщение и завершит работу. Я попытался перезагрузить (вы никогда не знаете) безрезультатно.
У меня заканчиваются идеи ... есть мысли?