Re: [WiX-users] Proper way to Register COM TypeLib

2012-05-23 Thread tetelee
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

2012-05-23 Thread Pally Sandher
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

2012-05-23 Thread tetelee
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

2012-05-22 Thread tetelee
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

2012-05-22 Thread Pally Sandher
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

2012-05-22 Thread tetelee
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

2012-05-22 Thread Pally Sandher
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

2012-05-22 Thread Chris Lord
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