【发布时间】:2012-08-02 13:55:36
【问题描述】:
我想在安装期间有条件地设置文件扩展名。据我了解,为了在 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.
我尝试在其中一个注册表项上设置 KeyPath="yes",但这不起作用 - 从我能够找到的内容来看,它需要一个文件 KeyPath.但这是一个不包含任何文件的组件!
我该如何解决这个错误,或者我是不是走错了路?
【问题讨论】:
标签: installation wix windows-installer