Re: [WiX-users] Proper way to Register COM TypeLib
Thanks Chris. I am not sure if I misunderstood the functionality of heat, but I thought all it does was to declare the file structure in the target machine. And the new output somehow indicates that: I tried to run heat on both of my myLib.tlb file as well as myLib.dll files, the first wxs output is just like how I described in the original post, and the second output, weirdly, is only a component which includes FilemyLib.dll. This is exactly the same like how I declared it manually. However, based on your reply, I got the feeling that heat would generate some extra information when running on myLib.dll, which will register the COM. The myLib.dll and myLib.tlb are generated by a class library which is marked as register for COM interop, and I just ran heat like this: heat file myLib.tlb -o tlb.wxs heat file myLib.dll -o dll.wxs On the second command heat also warms me that Could not harvest data from a file that was expected to be an assembly: myLib.dll, but I just ignored this warning. Did I still miss something? Thanks! -- View this message in context: http://windows-installer-xml-wix-toolset.687559.n2.nabble.com/Proper-way-to-Register-COM-TypeLib-tp7571310p7573000.html Sent from the wix-users mailing list archive at Nabble.com. -- Live Security Virtual Conference Exclusive live event will cover all the ways today's security and threat landscape has changed and how IT managers can respond. Discussions will include endpoint security, mobile security and the latest in malware threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users
Re: [WiX-users] Proper way to Register COM TypeLib
Does your DLL expose the DLLRegisterServer function? If so are all its dependencies available to heat when you're trying to harvest it? Both are easy enough to check using dependency walker. Palbinder Sandher Software Platform Engineer T: +44 (0) 141 945 8500 F: +44 (0) 141 945 8501 http://www.iesve.com **Design, Simulate + Innovate with the Virtual Environment** Integrated Environmental Solutions Limited. Registered in Scotland No. SC151456 Registered Office - Helix Building, West Of Scotland Science Park, Glasgow G20 0SP Email Disclaimer -Original Message- From: tetelee [mailto:ttlee1...@gmail.com] Sent: 23 May 2012 09:58 To: wix-users@lists.sourceforge.net Subject: Re: [WiX-users] Proper way to Register COM TypeLib Thanks Chris. I am not sure if I misunderstood the functionality of heat, but I thought all it does was to declare the file structure in the target machine. And the new output somehow indicates that: I tried to run heat on both of my myLib.tlb file as well as myLib.dll files, the first wxs output is just like how I described in the original post, and the second output, weirdly, is only a component which includes FilemyLib.dll. This is exactly the same like how I declared it manually. However, based on your reply, I got the feeling that heat would generate some extra information when running on myLib.dll, which will register the COM. The myLib.dll and myLib.tlb are generated by a class library which is marked as register for COM interop, and I just ran heat like this: heat file myLib.tlb -o tlb.wxs heat file myLib.dll -o dll.wxs On the second command heat also warms me that Could not harvest data from a file that was expected to be an assembly: myLib.dll, but I just ignored this warning. Did I still miss something? Thanks! -- View this message in context: http://windows-installer-xml-wix-toolset.687559.n2.nabble.com/Proper-way-to-Register-COM-TypeLib-tp7571310p7573000.html Sent from the wix-users mailing list archive at Nabble.com. -- Live Security Virtual Conference Exclusive live event will cover all the ways today's security and threat landscape has changed and how IT managers can respond. Discussions will include endpoint security, mobile security and the latest in malware threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users -- Live Security Virtual Conference Exclusive live event will cover all the ways today's security and threat landscape has changed and how IT managers can respond. Discussions will include endpoint security, mobile security and the latest in malware threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users
Re: [WiX-users] Proper way to Register COM TypeLib
Thanks Pally! That's exactly why it went wrong in the first place: I only copied the myLib.dll and myLib.tlb to another folder and ran heat there. Now when I run heat in the project output folder, where all of the dependencies are located, the COM information is finally harvested in the wxs file. -- View this message in context: http://windows-installer-xml-wix-toolset.687559.n2.nabble.com/Proper-way-to-Register-COM-TypeLib-tp7571310p7573141.html Sent from the wix-users mailing list archive at Nabble.com. -- Live Security Virtual Conference Exclusive live event will cover all the ways today's security and threat landscape has changed and how IT managers can respond. Discussions will include endpoint security, mobile security and the latest in malware threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users
[WiX-users] Proper way to Register COM TypeLib
I need to create a WIX installer which will register one of our COM libraries. As a fresh user in WIX as well as in COM, I couldn't find a standard way to do it. I am using WIX 3.6 Here is how I do it. Firstly, I have one class library which is marked as Register for COM interop in VS2010, so now I have both myLib.dll and myLib.tlb files. Then I think I need to use heat to harvest the type library. In http://stackoverflow.com/questions/567925/typelib-generation-and-installation-with-wix this link , it suggests that I should simply make the command like heat file c:\my\path\to\myLib.tlb -out tlb.wxs. I checked the generated wxs file, changed the GUID, but since I had a little problem there using the ComponentRef(it said unresolved reference), I decided to just copy the component declaration part to my main Product.wxs, hoping it will do the same thing, after all, the generated one is just a ComponentRef. And here is the code snapshot: Component Id=tlbReference Guid=MY_GUID File Id=myLib.tlb KeyPath=yes Source=myLib.tlb TypeLib Id={GENERATED_ID_WHICH_I_JUST_USED} Description=SOME DESCRIPTION FROM MY LIB Language=0 MajorVersion=525 MinorVersion=0 Interface Id={GENERATED_ID} Name=NAME_FROM_LIB ProxyStubClassId32={00020424---C000-0046} / ...MORE INTERFACES /TypeLib /File /Component Besides, I also make myLib.dll as one Component in the same folder where the TypeLib element is put, so both dll and tlb file will be there(I don't know whether it is necessary). However, after compilation of the installer and installation, I still find my COM functions not working. I checked the registry, it seems that in HKLM\SOFTWARE\Classes, there doesn't exist my newly-supposed-to-register classes. Anybody can tell me what I missed or did wrong? Thanks! -- View this message in context: http://windows-installer-xml-wix-toolset.687559.n2.nabble.com/Proper-way-to-Register-COM-TypeLib-tp7571310.html Sent from the wix-users mailing list archive at Nabble.com. -- Live Security Virtual Conference Exclusive live event will cover all the ways today's security and threat landscape has changed and how IT managers can respond. Discussions will include endpoint security, mobile security and the latest in malware threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users
Re: [WiX-users] Proper way to Register COM TypeLib
You need to harvest the DLL as well as the TypeLib. Palbinder Sandher Software Platform Engineer T: +44 (0) 141 945 8500 F: +44 (0) 141 945 8501 http://www.iesve.com **Design, Simulate + Innovate with the Virtual Environment** Integrated Environmental Solutions Limited. Registered in Scotland No. SC151456 Registered Office - Helix Building, West Of Scotland Science Park, Glasgow G20 0SP Email Disclaimer -Original Message- From: tetelee [mailto:ttlee1...@gmail.com] Sent: 22 May 2012 16:23 To: wix-users@lists.sourceforge.net Subject: [WiX-users] Proper way to Register COM TypeLib I need to create a WIX installer which will register one of our COM libraries. As a fresh user in WIX as well as in COM, I couldn't find a standard way to do it. I am using WIX 3.6 Here is how I do it. Firstly, I have one class library which is marked as Register for COM interop in VS2010, so now I have both myLib.dll and myLib.tlb files. Then I think I need to use heat to harvest the type library. In http://stackoverflow.com/questions/567925/typelib-generation-and-installation-with-wix this link , it suggests that I should simply make the command like heat file c:\my\path\to\myLib.tlb -out tlb.wxs. I checked the generated wxs file, changed the GUID, but since I had a little problem there using the ComponentRef(it said unresolved reference), I decided to just copy the component declaration part to my main Product.wxs, hoping it will do the same thing, after all, the generated one is just a ComponentRef. And here is the code snapshot: Component Id=tlbReference Guid=MY_GUID File Id=myLib.tlb KeyPath=yes Source=myLib.tlb TypeLib Id={GENERATED_ID_WHICH_I_JUST_USED} Description=SOME DESCRIPTION FROM MY LIB Language=0 MajorVersion=525 MinorVersion=0 Interface Id={GENERATED_ID} Name=NAME_FROM_LIB ProxyStubClassId32={00020424---C000-0046} / ...MORE INTERFACES /TypeLib /File /Component Besides, I also make myLib.dll as one Component in the same folder where the TypeLib element is put, so both dll and tlb file will be there(I don't know whether it is necessary). However, after compilation of the installer and installation, I still find my COM functions not working. I checked the registry, it seems that in HKLM\SOFTWARE\Classes, there doesn't exist my newly-supposed-to-register classes. Anybody can tell me what I missed or did wrong? Thanks! -- View this message in context: http://windows-installer-xml-wix-toolset.687559.n2.nabble.com/Proper-way-to-Register-COM-TypeLib-tp7571310.html Sent from the wix-users mailing list archive at Nabble.com. -- Live Security Virtual Conference Exclusive live event will cover all the ways today's security and threat landscape has changed and how IT managers can respond. Discussions will include endpoint security, mobile security and the latest in malware threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users -- Live Security Virtual Conference Exclusive live event will cover all the ways today's security and threat landscape has changed and how IT managers can respond. Discussions will include endpoint security, mobile security and the latest in malware threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users
Re: [WiX-users] Proper way to Register COM TypeLib
Thanks for your reply. But I tried to put myLib.dll into the same Component as TypeLib element (I assume this is what you mean), but the result is the same. Plus, what's the difference between harvest and what I do now: just make the dll as another component? Like I mentioned, I originally put myLib.dll into another component, but this component is in the same folder as the TypeLib component. Cheers, Wei -- View this message in context: http://windows-installer-xml-wix-toolset.687559.n2.nabble.com/Proper-way-to-Register-COM-TypeLib-tp7571310p7571393.html Sent from the wix-users mailing list archive at Nabble.com. -- Live Security Virtual Conference Exclusive live event will cover all the ways today's security and threat landscape has changed and how IT managers can respond. Discussions will include endpoint security, mobile security and the latest in malware threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users
Re: [WiX-users] Proper way to Register COM TypeLib
Run heat.exe on the DLL *as well* not *just* the TypeLib. Palbinder Sandher Software Platform Engineer T: +44 (0) 141 945 8500 F: +44 (0) 141 945 8501 http://www.iesve.com **Design, Simulate + Innovate with the Virtual Environment** Integrated Environmental Solutions Limited. Registered in Scotland No. SC151456 Registered Office - Helix Building, West Of Scotland Science Park, Glasgow G20 0SP Email Disclaimer -Original Message- From: tetelee [mailto:ttlee1...@gmail.com] Sent: 22 May 2012 16:56 To: wix-users@lists.sourceforge.net Subject: Re: [WiX-users] Proper way to Register COM TypeLib Thanks for your reply. But I tried to put myLib.dll into the same Component as TypeLib element (I assume this is what you mean), but the result is the same. Plus, what's the difference between harvest and what I do now: just make the dll as another component? Like I mentioned, I originally put myLib.dll into another component, but this component is in the same folder as the TypeLib component. Cheers, Wei -- View this message in context: http://windows-installer-xml-wix-toolset.687559.n2.nabble.com/Proper-way-to-Register-COM-TypeLib-tp7571310p7571393.html Sent from the wix-users mailing list archive at Nabble.com. -- Live Security Virtual Conference Exclusive live event will cover all the ways today's security and threat landscape has changed and how IT managers can respond. Discussions will include endpoint security, mobile security and the latest in malware threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users -- Live Security Virtual Conference Exclusive live event will cover all the ways today's security and threat landscape has changed and how IT managers can respond. Discussions will include endpoint security, mobile security and the latest in malware threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users
Re: [WiX-users] Proper way to Register COM TypeLib
Wei, Just adding the DLL as a file in a component will install the file but not register it as a COM component. The use of the word harvest implies the use of Wix's Heat tool. A quick look in the WiX help and a search online should give you all the information you need to know about using heat to extract the COM registration information. Chris Lord Attero Tech, LLC 1315 Directors Row, Suite 107 Fort Wayne, IN 46808 Ph: 260-496-9668 ext. 377, Fax 260-496-9879 email: chris.l...@atterotech.com Confidentiality Notice: This message is intended solely for the use of the addressees shown above. It may contain information that is privileged, confidential and/or exempt from disclosure under applicable law. If you are not the intended recipient of this message, you are hereby notified that the copying, use or distribution of any information or materials transmitted in or with this message is strictly prohibited. If you received this message by mistake, please immediately contact me at (260) 496-9668 x 377 or chris.l...@atterotech.com and destroy the original message. Thank you. -Original Message- From: tetelee [mailto:ttlee1...@gmail.com] Sent: Tuesday, May 22, 2012 11:52 AM To: wix-users@lists.sourceforge.net Subject: Re: [WiX-users] Proper way to Register COM TypeLib Thanks for your reply. But I tried to put myLib.dll into the same Component as TypeLib element (I assume this is what you mean), but the result is the same. Plus, what's the difference between harvest and what I do now: just make the dll as another component? Like I mentioned, I originally put myLib.dll into another component, but this component is in the same folder as the TypeLib component. Cheers, Wei -- View this message in context: http://windows-installer-xml-wix-toolset.687559.n2.nabble.com/Proper-way-to-Register-COM-TypeLib-tp7571310p7571393.html Sent from the wix-users mailing list archive at Nabble.com. -- Live Security Virtual Conference Exclusive live event will cover all the ways today's security and threat landscape has changed and how IT managers can respond. Discussions will include endpoint security, mobile security and the latest in malware threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users -- Live Security Virtual Conference Exclusive live event will cover all the ways today's security and threat landscape has changed and how IT managers can respond. Discussions will include endpoint security, mobile security and the latest in malware threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users