From: Wilson, P. <Phi...@wo...> - 2006-12-15 17:37:45
|
If you want this assembly registered for COM interop the /tlb option by itself is insufficient. Using "full" regasm on an assembly does two main things: 1. Registers the class entries and sets the InprocServer32 to mscoree.dll.=20 2. Registers a type library.=20 Just using the /tlb option does not do 1.=20 You can see what 1. does by using regasm with the /regfile option (and the /regfile option does not do 2). There are a couple of choices for 2. Some just generate a type library (tlbexp.exe) and register it via the type library table. Alternatively, use the Registry table to get all the HKCR\Interface and TypeLibrary entries on the system. Phil Wilson=20 -----Original Message----- From: wix...@li... [mailto:wix...@li...] On Behalf Of Erv Walter Sent: Friday, December 15, 2006 7:49 AM To: Christer Solskogen; wix...@li... Subject: Re: [WiX-users] regasm in wix? You need to fill in the Registry table with the appropriate values. You can use either ProgId, Class & Co. (which will fill in the Registry table behind the scenes when advertisement is turned off) or you can directly use Registry elements. Note, there is a good chance that as a .NET COM DLL you'll have a couple extra registry keys that need to be set beyond just what the ProgId and Class elements setup for you.=20 If you are not sure what registry keys need tbe set, you can either use tallow to generate a fragment from your DLL and take a look at that, or you can use 'regasm /tlb /reg PATH.TO.commandlib.dll' to create a PATH.TO.commandlib.reg file which you can look at with a text editor to understand what needs to be set. -----Original Message----- From: wix...@li... [mailto:wix...@li...] On Behalf Of Christer Solskogen Sent: Friday, December 15, 2006 12:28 AM To: wix...@li... Subject: [WiX-users] regasm in wix? Our application requires that one dll is registert using regasm. How do I do that in wix3? I was under the impression that just using <Typelib ...> would do it, but with the handful of things I tried I did not get it to work. <Component Id=3D'CommandLib' = Guid=3D'a349abc4-1832-4168-a84e-e952ac0fa09f'=20 DiskId=3D'1'> <File Id=3D'commandlib_dll' Name=3D'CommandLib.dll'=20 Source=3D'$(var.ReleaseDir)/CommandLib.dll' Assembly=3D'.net'=20 AssemblyRegisterComInterop=3D'yes' KeyPath=3D'yes' > <TypeLib Id=3D'23C76A21-7AEB-439c-BF85-700079E0E220' Language=3D'1033'=20 MajorVersion=3D'1' MinorVersion=3D'0'/> </File> </Component> Any pointers please? The command I need it to run is regasm /tlb PATH.TO.commandlib.dll? -- chs ------------------------------------------------------------------------ - Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys - and earn cash http://www.techsay.com/default.php?page=3Djoin.php&p=3Dsourceforge&CID=3D= DEVDE V _______________________________________________ WiX-users mailing list WiX...@li... https://lists.sourceforge.net/lists/listinfo/wix-users ------------------------------------------------------------------------ - Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys - and earn cash http://www.techsay.com/default.php?page=3Djoin.php&p=3Dsourceforge&CID=3D= DEVDE V _______________________________________________ WiX-users mailing list WiX...@li... https://lists.sourceforge.net/lists/listinfo/wix-users |