Re: [WiX-users] Question about register .net COM object

2010-06-15 Thread Dirk Ziegelmeier
Hello,

this is a working example of a COM object registration:

Component Id=COMComponent Guid=insert GUID here
File Id=DtmDll Source=YOUR_DLL_NAME_HERE KeyPath=yes /

Class Id={$(var.C_DtmClassId)} Context=InprocServer32
Description=$(var.C_DtmDll) ForeignServer=mscoree.dll
 ProgId Id=$(var.C_DtmProgId) Description=$(var.C_DtmClass) /
/Class

!-- .NET Category --
RegistryValue Root=HKCR Key=CLSID\{$(var.C_DtmClassId)}\Implemented
Categories\{62C8FE65-4EBB-45e7-B440-6E39B2CDBF29} Value= Type=string
Action=write /

RegistryValue Root=HKCR
Key=CLSID\{$(var.C_DtmClassId)}\InprocServer32\$(var.D_ProductVersion)
Name=Class  Value=$(var.C_DtmClass)Type=string
Action=write /
 RegistryValue Root=HKCR
Key=CLSID\{$(var.C_DtmClassId)}\InprocServer32\$(var.D_ProductVersion)
Name=Assembly   Value=$(var.D_ProductFqn)  Type=string
Action=write /
 RegistryValue Root=HKCR
Key=CLSID\{$(var.C_DtmClassId)}\InprocServer32\$(var.D_ProductVersion)
Name=RuntimeVersion Value=$(var.D_ProductImageRuntime) Type=string
Action=write /
 RegistryValue Root=HKCR
Key=CLSID\{$(var.C_DtmClassId)}\InprocServer32\$(var.D_ProductVersion)
Name=CodeBase   Value=file:///[#DtmDll]Type=string
Action=write /

RegistryValue Root=HKCR Key=CLSID\{$(var.C_DtmClassId)}\InprocServer32
Name=Class  Value=$(var.C_DtmClass)Type=string
Action=write /
 RegistryValue Root=HKCR Key=CLSID\{$(var.C_DtmClassId)}\InprocServer32
Name=Assembly   Value=$(var.D_ProductFqn) Type=string
Action=write /
 RegistryValue Root=HKCR Key=CLSID\{$(var.C_DtmClassId)}\InprocServer32
Name=RuntimeVersion Value=$(var.D_ProductImageRuntime) Type=string
Action=write /
 RegistryValue Root=HKCR Key=CLSID\{$(var.C_DtmClassId)}\InprocServer32
Name=CodeBase   Value=file:///[#DtmDll]Type=string
Action=write /
/Component

Examples for the defines:

D_Product_Fqn: Adm2.Adm.Dtm, Version=1.0.0.0, Culture=neutral,
PublicKeyToken=7b26e28fb8781288
C_DtmClass: Adm2.Adm.Dtm.Adm
D_ProductImageRuntime: v1.1.4322
C_DtmClassId: COM Class GUID
C_DtmProgId: COM ProgId
D_ProductVersion: 1.0.0.0

I hope you can see in there what you need/want to do.
Dirk



On Mon, Jun 14, 2010 at 15:55, Christopher Painter 
chr...@deploymentengineering.com wrote:

 regasm /regfile doesn't always work because if you have any user defined
 register functions they will not be in the regfile.   From what I've seen of
 heat, it's not vunerable to this extraction problem.  InstallShield does
 have this problem.

 Personally I wrote a little UI over  heat that watches a directory for
 changes and spits out a wix fragment.  I just scrape up the harvested XML
 and paste it into my installer source.



 - Original Message 
 From: gree...@cox.net gree...@cox.net
 To: General discussion for Windows Installer XML toolset. 
 wix-users@lists.sourceforge.net
 Cc: Elfe Xu elf...@microsoft.com
 Sent: Sat, June 12, 2010 2:48:58 PM
 Subject: Re: [WiX-users] Question about register .net COM object

 I saw regasm in the CustomAction element, so I am assuming  that this is a
 .NET assembly exposing COM objects.  Use the /reg option to create a .reg
 file containing all of the registry settings.  Then you can manually enter
 these values into the Wix projects.

 Wix has some tools that can automate some of this, but check the results
 and make sure what you have is correct.  What you may need to do is run a CA
 to set the Codebase value in the registry for the installed COM .NET
 assembly..  The value regasm puts in the .REG file will not be value for the
 install.

 Regards,
 greenaj


  Elfe Xu elf...@microsoft.com wrote:
  Hi,
 
  I'm trying a CA
  CustomAction Id=RegT  ExeCommand=blablabla\RegAsm.exe T.dll
 Execute=immediate /
  and found it can only success if I make the CA run after
 InstallFinalized. Otherwise, it will fail.
 
  I think the right way is to use Class element, but I just cannot make the
 result the same as I execute regasm.exe.
  Here is my trying:
   Component Id =TestComponent
 Guid=D75C79A1-83C9-467D-89FB-4B7E081401CE Win64=$(var.USEWIN64) 
 File  Id=TestCOM Assembly=.net Name=Test.dll DiskId=1
 Source=..\..\TestCOM.dll KeyPath=yes
   Class Id=CE13T9EC-3BE1-4292-89C4-243ERF42967B
   Description=test com
   ThreadingModel=both
   Context=InprocServer32
 ProgId Id=MyTestCOM /
   /Class
 /File
   /Component
  I just cannot find way to set lots of other stuffs, like
  Implemented Categories with value {62C8FE65-4EBB-45e7-B440-6E39B2CDBF29}
  The Assembly, Class, RuntimeVersion under InprocServer32.
  I want to set the ForeignServer with mscoree.dll, but wix says it cannot
 be used under File.
 
  I guess I might doing totally wrong. Anyone can give me a sample of how
 to do the register?
 
  Another question is: when I want to add the .net assembly into wix
 project reference, why I

Re: [WiX-users] Question about register .net COM object

2010-06-15 Thread Wilson, Phil
The other thing to worry about is that RegAsm on an assembly will generate a 
type library and register it. RegAsm /regfile will create you a reg file but 
will not generate any type library Interface entries. Whether this matters or 
not depends on your COM interfaces, but if it does matter then an explicit type 
library needs generating for Heat etc to create HKCR\Interface entries for. 

Phil Wilson 

-Original Message-
From: Christopher Painter [mailto:chr...@deploymentengineering.com] 
Sent: Monday, June 14, 2010 8:55 AM
To: General discussion for Windows Installer XML toolset.
Cc: Elfe Xu
Subject: Re: [WiX-users] Question about register .net COM object

regasm /regfile doesn't always work because if you have any user defined 
register functions they will not be in the regfile.   From what I've seen of 
heat, it's not vunerable to this extraction problem.  InstallShield does have 
this problem.

Personally I wrote a little UI over  heat that watches a directory for changes 
and spits out a wix fragment.  I just scrape up the harvested XML and paste it 
into my installer source.



- Original Message 
From: gree...@cox.net gree...@cox.net
To: General discussion for Windows Installer XML toolset. 
wix-users@lists.sourceforge.net
Cc: Elfe Xu elf...@microsoft.com
Sent: Sat, June 12, 2010 2:48:58 PM
Subject: Re: [WiX-users] Question about register .net COM object

I saw regasm in the CustomAction element, so I am assuming  that this is a .NET 
assembly exposing COM objects.  Use the /reg option to create a .reg file 
containing all of the registry settings.  Then you can manually enter these 
values into the Wix projects.  

Wix has some tools that can automate some of this, but check the results and 
make sure what you have is correct.  What you may need to do is run a CA to set 
the Codebase value in the registry for the installed COM .NET assembly..  The 
value regasm puts in the .REG file will not be value for the install.

Regards,
greenaj


 Elfe Xu elf...@microsoft.com wrote: 
 Hi,
 
 I'm trying a CA
 CustomAction Id=RegT  ExeCommand=blablabla\RegAsm.exe T.dll 
 Execute=immediate /
 and found it can only success if I make the CA run after InstallFinalized. 
 Otherwise, it will fail.
 
 I think the right way is to use Class element, but I just cannot make the 
 result the same as I execute regasm.exe.
 Here is my trying:
          Component Id =TestComponent 
Guid=D75C79A1-83C9-467D-89FB-4B7E081401CE Win64=$(var.USEWIN64) 
            File  Id=TestCOM Assembly=.net Name=Test.dll DiskId=1 
Source=..\..\TestCOM.dll KeyPath=yes
              Class Id=CE13T9EC-3BE1-4292-89C4-243ERF42967B
                      Description=test com
                      ThreadingModel=both
                      Context=InprocServer32
                ProgId Id=MyTestCOM /
              /Class
            /File
          /Component
 I just cannot find way to set lots of other stuffs, like
 Implemented Categories with value {62C8FE65-4EBB-45e7-B440-6E39B2CDBF29}
 The Assembly, Class, RuntimeVersion under InprocServer32.
 I want to set the ForeignServer with mscoree.dll, but wix says it cannot be 
 used under File.
 
 I guess I might doing totally wrong. Anyone can give me a sample of how to do 
 the register?
 
 Another question is: when I want to add the .net assembly into wix project 
 reference, why I get the error of Test.dll could not be added. Please make 
 sure that the file is accessible, and that it is a valid WiX reference. 
 Because of this failure, I can only add the file by the relevant path. Not 
 sure if it is a cause of the register failure.
 
 Thanks,
 -Elfe
 --
 ThinkGeek and WIRED's GeekDad team up for the Ultimate 
 GeekDad Father's Day Giveaway. ONE MASSIVE PRIZE to the 
 lucky parental unit.  See the prize list and enter to win: 
 http://p.sf.net/sfu/thinkgeek-promo
 ___
 WiX-users mailing list
 WiX-users@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/wix-users


--
ThinkGeek and WIRED's GeekDad team up for the Ultimate 
GeekDad Father's Day Giveaway. ONE MASSIVE PRIZE to the 
lucky parental unit.  See the prize list and enter to win: 
http://p.sf.net/sfu/thinkgeek-promo
___
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users



  

--
ThinkGeek and WIRED's GeekDad team up for the Ultimate 
GeekDad Father's Day Giveaway. ONE MASSIVE PRIZE to the 
lucky parental unit.  See the prize list and enter to win: 
http://p.sf.net/sfu/thinkgeek-promo
___
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix

Re: [WiX-users] Question about register .net COM object

2010-06-14 Thread Christopher Painter
regasm /regfile doesn't always work because if you have any user defined 
register functions they will not be in the regfile.   From what I've seen of 
heat, it's not vunerable to this extraction problem.  InstallShield does have 
this problem.

Personally I wrote a little UI over  heat that watches a directory for changes 
and spits out a wix fragment.  I just scrape up the harvested XML and paste it 
into my installer source.



- Original Message 
From: gree...@cox.net gree...@cox.net
To: General discussion for Windows Installer XML toolset. 
wix-users@lists.sourceforge.net
Cc: Elfe Xu elf...@microsoft.com
Sent: Sat, June 12, 2010 2:48:58 PM
Subject: Re: [WiX-users] Question about register .net COM object

I saw regasm in the CustomAction element, so I am assuming  that this is a .NET 
assembly exposing COM objects.  Use the /reg option to create a .reg file 
containing all of the registry settings.  Then you can manually enter these 
values into the Wix projects.  

Wix has some tools that can automate some of this, but check the results and 
make sure what you have is correct.  What you may need to do is run a CA to set 
the Codebase value in the registry for the installed COM .NET assembly..  The 
value regasm puts in the .REG file will not be value for the install.

Regards,
greenaj


 Elfe Xu elf...@microsoft.com wrote: 
 Hi,
 
 I'm trying a CA
 CustomAction Id=RegT  ExeCommand=blablabla\RegAsm.exe T.dll 
 Execute=immediate /
 and found it can only success if I make the CA run after InstallFinalized. 
 Otherwise, it will fail.
 
 I think the right way is to use Class element, but I just cannot make the 
 result the same as I execute regasm.exe.
 Here is my trying:
          Component Id =TestComponent 
Guid=D75C79A1-83C9-467D-89FB-4B7E081401CE Win64=$(var.USEWIN64) 
            File  Id=TestCOM Assembly=.net Name=Test.dll DiskId=1 
Source=..\..\TestCOM.dll KeyPath=yes
              Class Id=CE13T9EC-3BE1-4292-89C4-243ERF42967B
                      Description=test com
                      ThreadingModel=both
                      Context=InprocServer32
                ProgId Id=MyTestCOM /
              /Class
            /File
          /Component
 I just cannot find way to set lots of other stuffs, like
 Implemented Categories with value {62C8FE65-4EBB-45e7-B440-6E39B2CDBF29}
 The Assembly, Class, RuntimeVersion under InprocServer32.
 I want to set the ForeignServer with mscoree.dll, but wix says it cannot be 
 used under File.
 
 I guess I might doing totally wrong. Anyone can give me a sample of how to do 
 the register?
 
 Another question is: when I want to add the .net assembly into wix project 
 reference, why I get the error of Test.dll could not be added. Please make 
 sure that the file is accessible, and that it is a valid WiX reference. 
 Because of this failure, I can only add the file by the relevant path. Not 
 sure if it is a cause of the register failure.
 
 Thanks,
 -Elfe
 --
 ThinkGeek and WIRED's GeekDad team up for the Ultimate 
 GeekDad Father's Day Giveaway. ONE MASSIVE PRIZE to the 
 lucky parental unit.  See the prize list and enter to win: 
 http://p.sf.net/sfu/thinkgeek-promo
 ___
 WiX-users mailing list
 WiX-users@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/wix-users


--
ThinkGeek and WIRED's GeekDad team up for the Ultimate 
GeekDad Father's Day Giveaway. ONE MASSIVE PRIZE to the 
lucky parental unit.  See the prize list and enter to win: 
http://p.sf.net/sfu/thinkgeek-promo
___
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users



  

--
ThinkGeek and WIRED's GeekDad team up for the Ultimate 
GeekDad Father's Day Giveaway. ONE MASSIVE PRIZE to the 
lucky parental unit.  See the prize list and enter to win: 
http://p.sf.net/sfu/thinkgeek-promo
___
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users


Re: [WiX-users] Question about register .net COM object

2010-06-12 Thread greenaj
I saw regasm in the CustomAction element, so I am assuming  that this is a .NET 
assembly exposing COM objects.  Use the /reg option to create a .reg file 
containing all of the registry settings.  Then you can manually enter these 
values into the Wix projects.  

Wix has some tools that can automate some of this, but check the results and 
make sure what you have is correct.  What you may need to do is run a CA to set 
the Codebase value in the registry for the installed COM .NET assembly..  The 
value regasm puts in the .REG file will not be value for the install.

Regards,
greenaj


 Elfe Xu elf...@microsoft.com wrote: 
 Hi,
 
 I'm trying a CA
 CustomAction Id=RegT  ExeCommand=blablabla\RegAsm.exe T.dll 
 Execute=immediate /
 and found it can only success if I make the CA run after InstallFinalized. 
 Otherwise, it will fail.
 
 I think the right way is to use Class element, but I just cannot make the 
 result the same as I execute regasm.exe.
 Here is my trying:
   Component Id =TestComponent 
 Guid=D75C79A1-83C9-467D-89FB-4B7E081401CE Win64=$(var.USEWIN64) 
 File  Id=TestCOM Assembly=.net Name=Test.dll DiskId=1 
 Source=..\..\TestCOM.dll KeyPath=yes
   Class Id=CE13T9EC-3BE1-4292-89C4-243ERF42967B
  Description=test com
  ThreadingModel=both
  Context=InprocServer32
 ProgId Id=MyTestCOM /
   /Class
 /File
   /Component
 I just cannot find way to set lots of other stuffs, like
 Implemented Categories with value {62C8FE65-4EBB-45e7-B440-6E39B2CDBF29}
 The Assembly, Class, RuntimeVersion under InprocServer32.
 I want to set the ForeignServer with mscoree.dll, but wix says it cannot be 
 used under File.
 
 I guess I might doing totally wrong. Anyone can give me a sample of how to do 
 the register?
 
 Another question is: when I want to add the .net assembly into wix project 
 reference, why I get the error of Test.dll could not be added. Please make 
 sure that the file is accessible, and that it is a valid WiX reference. 
 Because of this failure, I can only add the file by the relevant path. Not 
 sure if it is a cause of the register failure.
 
 Thanks,
 -Elfe
 --
 ThinkGeek and WIRED's GeekDad team up for the Ultimate 
 GeekDad Father's Day Giveaway. ONE MASSIVE PRIZE to the 
 lucky parental unit.  See the prize list and enter to win: 
 http://p.sf.net/sfu/thinkgeek-promo
 ___
 WiX-users mailing list
 WiX-users@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/wix-users


--
ThinkGeek and WIRED's GeekDad team up for the Ultimate 
GeekDad Father's Day Giveaway. ONE MASSIVE PRIZE to the 
lucky parental unit.  See the prize list and enter to win: 
http://p.sf.net/sfu/thinkgeek-promo
___
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users


Re: [WiX-users] Question about register .net COM object

2010-06-12 Thread Rob Mensching
SelfReg is bad. Use heat.exe to capture the registration in .wxs form.

On Sat, Jun 12, 2010 at 10:58 AM, Elfe Xu elf...@microsoft.com wrote:

 Hi,

 I'm trying a CA
 CustomAction Id=RegT  ExeCommand=blablabla\RegAsm.exe T.dll
 Execute=immediate /
 and found it can only success if I make the CA run after InstallFinalized.
 Otherwise, it will fail.

 I think the right way is to use Class element, but I just cannot make the
 result the same as I execute regasm.exe.
 Here is my trying:
  Component Id =TestComponent
 Guid=D75C79A1-83C9-467D-89FB-4B7E081401CE Win64=$(var.USEWIN64) 
File  Id=TestCOM Assembly=.net Name=Test.dll DiskId=1
 Source=..\..\TestCOM.dll KeyPath=yes
  Class Id=CE13T9EC-3BE1-4292-89C4-243ERF42967B
 Description=test com
 ThreadingModel=both
 Context=InprocServer32
ProgId Id=MyTestCOM /
  /Class
/File
  /Component
 I just cannot find way to set lots of other stuffs, like
 Implemented Categories with value {62C8FE65-4EBB-45e7-B440-6E39B2CDBF29}
 The Assembly, Class, RuntimeVersion under InprocServer32.
 I want to set the ForeignServer with mscoree.dll, but wix says it cannot be
 used under File.

 I guess I might doing totally wrong. Anyone can give me a sample of how to
 do the register?

 Another question is: when I want to add the .net assembly into wix project
 reference, why I get the error of Test.dll could not be added. Please make
 sure that the file is accessible, and that it is a valid WiX reference.
 Because of this failure, I can only add the file by the relevant path. Not
 sure if it is a cause of the register failure.

 Thanks,
 -Elfe

 --
 ThinkGeek and WIRED's GeekDad team up for the Ultimate
 GeekDad Father's Day Giveaway. ONE MASSIVE PRIZE to the
 lucky parental unit.  See the prize list and enter to win:
 http://p.sf.net/sfu/thinkgeek-promo
 ___
 WiX-users mailing list
 WiX-users@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/wix-users




-- 
virtually, Rob Mensching - http://RobMensching.com LLC
--
ThinkGeek and WIRED's GeekDad team up for the Ultimate 
GeekDad Father's Day Giveaway. ONE MASSIVE PRIZE to the 
lucky parental unit.  See the prize list and enter to win: 
http://p.sf.net/sfu/thinkgeek-promo
___
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users


Re: [WiX-users] Question about register .net COM object

2010-06-12 Thread Elfe Xu

Yeah, the heat.exe works fine! thanks!
-- 
View this message in context: 
http://windows-installer-xml-wix-toolset.687559.n2.nabble.com/Question-about-register-net-COM-object-tp5172220p5173310.html
Sent from the wix-users mailing list archive at Nabble.com.

--
ThinkGeek and WIRED's GeekDad team up for the Ultimate 
GeekDad Father's Day Giveaway. ONE MASSIVE PRIZE to the 
lucky parental unit.  See the prize list and enter to win: 
http://p.sf.net/sfu/thinkgeek-promo
___
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users