0
我正在爲我們的某個產品創建安裝程序。安裝程序是在早些時候使用WISE完成的,但我們希望將此版本更改爲wix。在安裝新版本之前,我們的用戶卸載舊版本產品很重要,因此我需要檢查舊安裝程序創建的註冊表中的密鑰(在卸載舊版本時密鑰會被刪除)。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代碼頁。
當我在機器上安裝並使用舊版本時,我在註冊表中找到了密鑰,安裝程序會向我顯示消息。如果我刪除舊版本,我可以看到註冊表項消失,但安裝程序仍然會顯示消息並退出。我嘗試重新啓動(你永遠不知道)無濟於事。
我用盡了想法...任何想法?
詳細日誌說什麼? – 2012-02-10 12:30:20
創建安裝日誌以獲取詳細信息。我的猜測是,不知何故該屬性設置。 – Ciprian 2012-02-10 12:32:57
Wise安裝程序是否也是MSI? (你引用的關鍵不是)。但是如果是這樣的話,你可以使用升級來找到以前的。 – 2012-02-10 12:46:18