これがうまくいかない理由を誰か教えてください。Visual C++ 再頒布可能パッケージがインストールされているかどうかを確認するために、次の 2 つのレジストリ チェックがあります。
<Property Id="REGDBKEYEXISTX64">
<RegistrySearch Id="REGDBKEYEXISTX64" Root="HKLM" Key="Software\Microsoft\Windows\CurrentVersion\Uninstall\{837b34e3-7c30-493c-8f6a-2b0f04e2912c}" Name="Version" Type="raw" Win64="yes" />
</Property>
<!--Checking if Microsoft Visual C++ Redistributables are installed on a 32-bit system-->
<Property Id="REGDBKEYEXIST">
<RegistrySearch Id="REGDBKEYEXIST" Root="HKLM" Key="Software\Microsoft\Windows\CurrentVersion\Uninstall\{837b34e3-7c30-493c-8f6a-2b0f04e2912c}" Name="Version" Type="raw" Win64="no" />
</Property>
インストールされていない場合は、カスタム アクションを実行します。
<Custom Action="InstallRedistributables" After="GetVariantName">Installed OR REGDBKEYEXISTX64 OR REGDBKEYEXIST</Custom>
ただし、再配布可能ファイルがインストールされている場合でも、カスタムアクションが実行されますが、これは望ましくありません。これは私のログファイルであるため、それが検出されることはわかっています。
Property: REGDBKEYEXIST, Signature: REGDBKEYEXIST
MSI (c) (4C:44) [12:19:04:989]: PROPERTY CHANGE: Adding REGDBKEYEXIST property. Its value is '#134276921'.
では、何が問題になるのでしょうか?これを別のカスタムアクションで実行しましたが、完全に機能するため、解決策が本当にわかりません。