インストール中に条件付きでファイル拡張子を設定したいと思います。私が理解しているように、Wix で条件付きで何かを行うには、自己完結型のコンポーネントである必要があります。したがって、ユーザーが設定できるようにしたいファイルタイプの関連付けごとに、次のようなコンポーネントがあります。
<Component Id="FileAssocComponent_PS" Guid="DAFE9461-2DF0-934A-F204-6B28CEA23C01">
<Condition>FILE_ASSOC_PS</Condition>
<RegistryValue Root="HKLM" Key="SOFTWARE\PrinterApp\Capabilities\FileAssociations" Name=".prn" Value="PrinterApp.ps" Type="string" />
<RegistryValue Root="HKLM" Key="SOFTWARE\PrinterApp\Capabilities\MIMEAssociations" Name="application/postscript" Value="PrinterApp.ps" Type="string" />
<RegistryValue Root="HKLM" Key="SOFTWARE\Classes\PrinterApp.ps" Name="FriendlyTypeName" Value="PostScript File" Type="string" />
<ProgId Id="PrinterApp.ps" Description="PostScript File" Icon="PrinterApp.ico" Advertise="yes">
<Extension Id="ps">
<Verb Id="open" Command="Open" Argument=""%1""/>
</Extension>
</ProgId>
</Component>
しかし、これにより次のエラーが発生します。
error LGHT0204: ICE19: Extension: 'ps' advertises component: 'FileAssocComponent_PS'. This component cannot be advertised because the KeyPath type disallows it.
レジストリ エントリの 1 つで KeyPath="yes" を設定しようとしましたが、うまくいきません。しかし、これはファイルを含まないコンポーネントです!
このエラーを回避するにはどうすればよいですか、それとも間違った方法で行っていますか?