I am creating an installer using WiX which contains few dlls. In the original script first gacutil.exe and then regasm for each dll is called. I am having a problem when transfering this idea into WiX. Here is the code fragment for installing into GAC :
<Component Id="GMAG.Core.Serialization.dll" Directory="_2.2.8.0" Guid="{my_guid}">
<File Id="my.dll" Source="my_src" Assembly=".net" KeyPath="yes" Checksum="yes"/>
</Component>
Now the question is how WiX will perform the assembly registration? My problem is:
- I can't create another
<File Id="my.dll" Source="my_src" KeyPath="yes"/>
in the same component cause there must be only one keyPath="yes" attribute/component. - I can't put keyPath="yes" in component level, as it breaks component reference counting system.
- I can't create
<File Id="my.dll" Source="my_src"/>
without keyPath="Yes", as it generates compilation error. - I can't create a seperate component as two components will try to install same file.
I know I don't need to call regasm
or regsvr32
when using heat
. In the component code :<File Id="my.dll" Source="my_src" KeyPath="yes"/>
should be enough for the registration.
I'm using heat and now I'm stuck as I have to do assembly registration also.