<Component Id="Comp.Comp1" Guid="*" > <Condition><![CDATA[VersionNT < 602]]></Condition> <File Id="File1" Source="$(Dir1)TestFile.dll" /> </Component> <Component Id="Comp.Comp2" Guid="*" > <Condition><![CDATA[VersionNT >= 602]]></Condition> <File Id="File2" Source="$(Dir2)TestFile.dll" /> </Component>
ICE08: Component: Comp.Comp2 has a duplicate GUID: {2963D8E7-CBEC-50C8-AF4B-65E895FE3283}
如何iam得到这个错误eventhough我给了一个autogen guid值“*”
谢谢,
在Program Files和Appdata中安装
合并模块与嵌套的MSI
使用Inno Setup将串行写入文件
在Linux上为Windows应用程序构build安装程序有什么可能(安装目标= windows,构build环境= Linux)
用最小的环境分配一个Python程序
如何从我的安装程序中设置此registry值
如何在Windows上为Ruby on Rails应用程序部署创build一个全function的安装程序?
Component元素的star-GUID根据文件的目标位置计算稳定的GUID。 GUID的稳定性对于未来的更新(特别是修补)至关重要。 它在许多情况下工作得很好,但是将文件放到完全相同的位置的互斥组件不是一个。 在这种情况下,您至少需要明确地设置一个Component/@Guid 。
在上述情况下,您可以执行以下操作:
<Component Id="Comp.Comp1" Guid="*" > <Condition><![CDATA[VersionNT < 602]]></Condition> <File Id="File1" Source="$(Dir1)TestFile.dll" /> </Component> <Component Id="Comp.Comp2" Guid="PUT-GUID-HERE"> <Condition><![CDATA[VersionNT >= 602]]></Condition> <File Id="File2" Source="$(Dir2)TestFile.dll" /> </Component>
从技术上讲,你可以在这种情况下抑制ICE08的错误,因为这些组件是互斥的,但我个人会在压制ICE之前做到这一点。 恕我直言,最好不同的文件有最终不同的GUIDs。
你没有显示这个片段(目录元素)的上下文,但对我来说,似乎你安装相同的文件名两次相同的目录。 这违反了组件规则。 “来源”是不同的,但条件是相同的:!VersionNT> = 602。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。