私はこのようなWiXのセットアップに互換性アシスタントのためのレジストリキーを追加してみました: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>
しかし、何もキーをインストールしていないときに生成されます。私は何かを逃したり、何か間違っていますか? this questionとwixのドキュメントから、私がやっていることの詳細が得られました。
更新: 構文は少し異なりますが、私が指摘した質問は異なるバージョンのWiXを使用しているためです。私が使った構文は、WiX 2が受け入れる唯一のものです。このwixファイルはうまく構築されます。新しいレジストリエントリは生成されません。
更新:私は問題を誤診していました。 wix scrpitは正常に機能しましたが、含まれているコンポーネントにはWin64="yes"
という属性がないため、レジストリのWow6432bit
ノードに値を入力してください。
:私はこのようなあなたのレジストリ要素を書き換えしようと、とにかく
...あなたのサンプルがエラーなしでコンパイルされるか、疑問に思います。違うやり方をしている理由はありますか? – wimh
@ウィムメル:それはWiXの別のバージョンだからだと思います。私はそれに言及する質問を更新しました。 – configurator
すばらしく解決しました! –