という変数があるとしprogramVersion
ます。この変数を使用して、HKLM のアプリケーションのバージョンをレジストリに公開します。
このレジストリ値をチェックして、特定のバージョンの別のプログラムがマシンにインストールされているかどうかを確認するための条件がいくつかあります。
<Property Id="ANOTHER_APP_INSTALLED">
<RegistrySearch Id="AnotherAppInstalled" Root="HKLM"
Key="$(var.keyPathProgram)$(var.AnotherProgramVersion)"
Name="Path"
Type="raw" />
</Property>
しかし、今、OTHER プログラムの新しいバージョンを作成したので、新しいアプリケーションのレジストリに古いバージョンが存在するか、それとも新しいバージョンが存在するかを確認したいと考えています。したがって、次のように両方のバージョンを確認する必要があります。
<Property Id="ANOTHER_APP_INSTALLED">
<RegistrySearch Id="AnotherAppInstalled" Root="HKLM"
Key="$(var.keyPathProgram)$(var.AnotherProgramVersion)"
Name="Path"
Type="raw" />
</Property>
<Property Id="ANOTHER_APPV11_INSTALLED">
<RegistrySearch Id="AnotherAppV11Installed" Root="HKLM"
Key="$(var.keyPathProgram)$(var.AnotherProgramVersion11)"
Name="Path"
Type="raw" />
</Property>
変数の後にアスタリスクを付けて、その後に任意の値を受け入れる方法はありますか? このようなもの:
<Property Id="ANOTHER_APP_INSTALLED">
<RegistrySearch Id="AnotherAppInstalled" Root="HKLM"
Key="$(var.keyPathProgram)$(var.AnotherProgramVersion)*"
Name="Path"
Type="raw" />
</Property>
それらのいずれかがインストールされているかどうかを確認する方法は次のとおりです。
<![CDATA[ ANOTHER_APP_INSTALLED or ANOTHER_APPV11_INSTALLED ]]>
要約:
そのため、自分のアプリケーションではなく、別のアプリケーションが任意のバージョンにインストールされているかどうかを確認するプログラムがマシンにインストールされています。その他のアプリケーションが可能なバージョンのいずれかにインストールされているかどうかを確認する必要があります。
編集: v1、v1.1、v1.2、v1.3... がインストールされているかどうかを確認する必要があります。しかし、そのうちの 1 つだけでなく、すべてを可能なインストール済みバージョンにできるようにする必要があります。製品の存在するすべてのバージョンを確認する必要があります。
これが WiX の通常の動作ではないことはわかっていますが、そのように動作する必要があります。