Light抱怨MSI公共属性正在使用的目录名称

时间:2014-10-29 14:25:21

标签: wix

我的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> 

1 个答案:

答案 0 :(得分:6)

它唯一的Id属性不应与MSI公共属性相同。这就是它抱怨的内容。

而不是

<Directory Id="Time">

写这个

<Directory Id="Dir_Time" Name="Time">

因此,将创建正确命名的文件夹,Id属性的值不会与MSI公共属性冲突。您可以查看this thread,其中突出显示了类似的问题。