私たちの製品のインストーラを作成しています。インストーラーは以前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コードページに注目してください。
マシンに古いバージョンがインストールされている場合、レジストリにキーが見つかると、インストーラにメッセージが表示されます。私が古いバージョンを削除すると、レジストリキーが消えるのが見えますが、インストーラはまだ私にメッセージを表示して終了します。私は無駄に再起動(あなたは知らない)を試みました。
私はアイデアが不足している...任意の考えですか?
冗長ログは何を表していますか? –
詳細については、インストールログを作成してください。私の推測は、何とかそのプロパティが設定されているということです。 – Ciprian
ワイズインストーラもMSIでしたか? (あなたが引用したキーはそれがそうではないことを示唆しています)。もしそうなら、アップグレードを使用して以前のものを見つけることができます。 –