2

次のような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"

4

1 に答える 1

1

私が見る限り、WiX2 のRegistryValue要素には属性がありません。あなたのサンプルがどのようにエラーなしでコンパイルされるのだろうか...

とにかく、次のようにレジストリ要素を書き直してみてください。

<Registry Root="HKLM"
          Key="Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Compatibility Assistant"
          Name="ExecutablesToExclude"
          Type="multiString"
          Action="append">
    <RegistryValue>[File1.exe]</RegistryValue>
    <RegistryValue>[File2.exe]</RegistryValue>
    <RegistryValue>[File3.exe]</RegistryValue>
</Registry>
于 2011-01-28T08:23:10.320 に答える