次のようなwixセットアップに互換性アシスタントのレジストリキーを追加してみました:
<File Id="File1.exe" Name="File1.exe" LongName="File1.exe" Source="..\Binaries\File1.exe" DiskId="1" />
<File Id="File2.exe" Name="File2.exe" LongName="File2.exe" Source="..\Binaries\File2.exe" DiskId="1" />
<File Id="File3.exe" Name="File3.exe" LongName="File3.exe" Source="..\Binaries\File3.exe" DiskId="1" />
<Registry Root="HKLM"
Key="Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Compatibility Assistant"
Name="ExecutablesToExclude"
Type="multiString"
Action="append">
<RegistryValue Action="append" Value="[File1.exe]" />
<RegistryValue Action="append" Value="[File2.exe]" />
<RegistryValue Action="append" Value="[File3.exe]" />
</Registry>
ただし、インストール時にキーは生成されません。私は何かを見逃していますか、何か間違っていますか? この質問とwixのドキュメントから、私がやっていることの詳細を入手しました。
更新: 構文が少し異なります。指摘した質問が異なるバージョンの WiX を使用しているためだと思います。私が使用した構文は、WiX 2 が受け入れる唯一のものであり、この wix ファイルは正常にビルドされます。新しいレジストリ エントリが生成されないだけです。
更新: 私は問題を誤診していました。wix スクリプトは適切に機能しましたがWow6432bit
、含まれているコンポーネントに属性がなかったため、値をレジストリのノードに入れましたWin64="yes"
。