Two component tags in my wxs file is as folllows
<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>
But iam getting an error as below
ICE08: Component: Comp.Comp2 has a duplicate GUID: {2963D8E7-CBEC-50C8-AF4B-65E895FE3283}
How iam getting this error eventhough i gave an autogen guid value "*"
Thanks,
You didn't show the context of this snippet ( Directory Elements) but to me it seems you are installing the same filename to the same directory twice. That's a component rule violation. The "source" is different but the conditions are the same : !VersionNT >= 602.
The star-GUID for
Component
elements calculates a stable GUID based on the target location of the file. The stability of the GUID is vital for future updates (particularly patching). It works great in many cases but mutually exclusive Components that put a file into the exact same location is not one. In this case, you'll need to explicitly set at least one of yourComponent/@Guid
s.In the above case, you can do the following:
Technically speaking you could suppress the ICE08 error in this case because the Components are mutually exclusive but I, personally, would do the above before suppressing the ICE. IMHO, it is preferable that the different files have different GUIDs ultimately anyway.