我的WiX安装中有第三方库,当我运行Light.exe时导致以下错误:
错误LGHT0204:ICE99:目录名称:时间与其中一个MSI公共属性相同,可能会导致无法预料的副作用。
我对抑制ICE错误,重命名目录以及对第三方接缝进行更改(例如一个坏主意)感到不舒服。还有其他选择吗?
编辑:
解决
如果其他人遇到类似的问题,这里是我最终使用的xsl(我从这个博客得到它:http://installpac.wordpress.com/2012/05/07/conflict-management-in-wix/):
<?xml version="1.0" ?>
<xsl:transform version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:wix="http://schemas.microsoft.com/wix/2006/wi">
<xsl:template match="@*|*">
<xsl:copy>
<xsl:apply-templates select="@*" />
<xsl:apply-templates select="*" />
</xsl:copy>
</xsl:template>
<xsl:template match="wix:Directory">
<xsl:copy>
<xsl:apply-templates select="@*" />
<xsl:attribute name="Id">
<xsl:text>NameOfAThirdPartyLibraryImUsing_directory_</xsl:text>
<xsl:value-of select="@Id"/>
</xsl:attribute>
<xsl:apply-templates select="node()"/>
</xsl:copy>
</xsl:template>
</xsl:transform>
答案 0 :(得分:6)
它唯一的Id
属性不应与MSI公共属性相同。这就是它抱怨的内容。
而不是
<Directory Id="Time">
写这个
<Directory Id="Dir_Time" Name="Time">
因此,将创建正确命名的文件夹,Id
属性的值不会与MSI公共属性冲突。您可以查看this thread,其中突出显示了类似的问题。