Just to follow up on this: In the end the issue was that there were dependencies that also needed to be registered in the GAC. Visual Studio was masking the process from the developer so we didn't know that these dependencies were not being handled correctly.
So this process of using heat.exe on the dll, adding in the "Assembly='.net'" into the <file> element, and using heat.exe on the TLB file (generated via regasm /tlb) seems to work. -----Original Message----- From: Nicholas Makin [mailto:nma...@opentext.com] Sent: Tuesday, September 08, 2009 5:06 PM To: wix-users@lists.sourceforge.net Subject: [WiX-users] .net COM registration with heat Hello, I am trying to build an installer for a .Net COM dll - and the things seem to work until the developer tries to use the COM object. If the developer runs regasm and gacutil on the dll then she is then able to use the COM object. I was under the impression that my MSI installer should have been doing everything that gacutil/regasm are doing but there must be something I am missing. My build process uses the following: #1 use heat on the dll file: Foo_dll.wxs : .\Foo\Foo.dll $(HEAT) file .\Foo\Foo.dll -gg -dr INSTALLDIR -o Foo_dll.wxs I then open up the file and fix the directory references to match the main install wxs. I copy the component reference into the main install wxs. #2 use heat on the tlb file: Foo_tlb.wxs : .\Foo\Foo.tlb $(HEAT) file .\Foo\Foo.tlb -gg -dr INSTALLDIR -o Foo.wxs I then open up the file and fix the directory references to match the main install wxs. Add Assembly = ".net" to the file tag. I copy the component reference into the main install wxs. I think build the installer and run it. I have used the following to ensure that heat is picking up the proper registry setting for the dll: Run regasm Foo.dll /codebase /regfile:Foo.reg Run regasm Foo.dll /codebase /tdl:Foo.tlb Compared Foo.reg with registry entries created using heat - all seem to be compatable. The component element looks like so: <File Id="filSOMEID" KeyPath="yes" Assembly=".net" Source="SourceDir\Foo\Foo.dll" /> Now I do have to add in Assembly=".net" portion which does seem odd to me, but the file does get installed to the GAC once I do. The TLD file component looks like so: <File Id="filSOMEID" KeyPath="yes" Source="SourceDir\Foo\Foo.tlb"> <TypeLib Id="{FFFFFFFF-0000-0000-0000-000000000000}" Description="Foo" HelpDirectory="INSTALLDIR" Language="0" MajorVersion="1" MinorVersion="0"> <Interface Id="{99999999-0000-0000-0000-000000000000}" Name="_FOO" ProxyStubClassId="{00020424-0000-0000-C000-000000000046}" ProxyStubClassId32="{00020424-0000-0000-C000-000000000046}" /> </TypeLib> </File> Which makes no sense to me, but seems to be right. Can anyone think of a step I may be missing or something that sounds a little strange: Can Heat generate all the same information that regasm does? Do I need a local copy of the dll or should the one copied to the GAC suffice? (that is one major difference when the developer does it on their own - the file remains in the install dir) Does the TypeLib Id have any special requirements (I am using the one generated by heat - but something I read made me think that maybe it need to be something specific). Anyway the developer is pretty frustrated with me because they can use the regasm/gacutil and get their app to work, but my installer does not install it correctly and I have no clue what the difference may be. Nicholas ------------------------------------------------------------------------------ Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day trial. Simplify your report design, integration and deployment - and focus on what you do best, core application coding. Discover what's new with Crystal Reports now. http://p.sf.net/sfu/bobj-july _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users ------------------------------------------------------------------------------ Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day trial. Simplify your report design, integration and deployment - and focus on what you do best, core application coding. Discover what's new with Crystal Reports now. http://p.sf.net/sfu/bobj-july _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users