Thanks, it worked!

 

I just had a look at the registry – the installlocation was being set 
correctly, but I had the wrong assembly version in there.  I was just being a 
dumbass.

 

Thanks for the help!

 

From: Jim Williams [mailto:[EMAIL PROTECTED] 
Sent: 23 April 2008 19:34
To: Jaco Pretorius; wix-users@lists.sourceforge.net
Subject: RE: [WiX-users] RegAsm in Wix

 

My best guess here would be, after installation, to check the registry using 
regedit to see that the value of the property INSTALLLOCATION had the proper 
value for the path to the DLL substituted.  Or you could try replacing the 
file:///[INSTALLLOCATION]TAScriptAPI.dll entries with a reference to the actual 
WiX file id [#ScriptDll] (including the square brackets) and see if that works.

Jim 

   _____  

From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Jaco Pretorius
Sent: Wednesday, April 23, 2008 8:46 AM
To: wix-users@lists.sourceforge.net
Subject: [WiX-users] RegAsm in Wix

 

Hello

 

I’m trying to register an assembly for com interop.  I used the magic of tallow 
to create a fragment which seems to take care of all the registry entries.

 

The fragment looks something like this:

 

                      <File Id="ScriptDll" Name="TASCRI_1.DLL" 
LongName="TAScriptAPI.dll" Source="..\TAScriptAPI\bin\Release\TAScriptAPI.dll" 
/>

                      <File Id="ScriptTlb" Name="TASCRI_1.TLB" 
LongName="TAScriptAPI.tlb" Source="..\TAScriptAPI\bin\Release\TAScriptAPI.tlb" 
/>                     

                      <Registry Root="HKCR" Key="TAScriptAPI.ScriptAPI" 
Value="TAScriptAPI.ScriptAPI" Type="string" />

                      <Registry Root="HKCR" Key="TAScriptAPI.ScriptAPI\CLSID" 
Value="{94B68427-23BE-3B47-A3C9-928D32633723}" Type="string" />

                      <Registry Root="HKCR" 
Key="CLSID\{94B68427-23BE-3B47-A3C9-928D32633723}" 
Value="TAScriptAPI.ScriptAPI" Type="string" />

                      <Registry Root="HKCR" 
Key="CLSID\{94B68427-23BE-3B47-A3C9-928D32633723}\InprocServer32" 
Value="mscoree.dll" Type="string" />

                      <Registry Root="HKCR" 
Key="CLSID\{94B68427-23BE-3B47-A3C9-928D32633723}\InprocServer32" 
Name="ThreadingModel" Value="Both" Type="string" />

                      <Registry Root="HKCR" 
Key="CLSID\{94B68427-23BE-3B47-A3C9-928D32633723}\InprocServer32" Name="Class" 
Value="TAScriptAPI.ScriptAPI" Type="string" />

                      <Registry Root="HKCR" 
Key="CLSID\{94B68427-23BE-3B47-A3C9-928D32633723}\InprocServer32" 
Name="Assembly" Value="TAScriptAPI, Version=1.0.0.6, Culture=neutral, 
PublicKeyToken=ee37e07482172a30" Type="string" />

                      <Registry Root="HKCR" 
Key="CLSID\{94B68427-23BE-3B47-A3C9-928D32633723}\InprocServer32" 
Name="RuntimeVersion" Value="v2.0.50727" Type="string" />

                      <Registry Root="HKCR" 
Key="CLSID\{94B68427-23BE-3B47-A3C9-928D32633723}\InprocServer32" 
Name="CodeBase" Value="file:///[INSTALLLOCATION]TAScriptAPI.dll" Type="string" 
/>

                      <Registry Root="HKCR" 
Key="CLSID\{94B68427-23BE-3B47-A3C9-928D32633723}\InprocServer32\1.0.0.6" 
Name="Class" Value="TAScriptAPI.ScriptAPI" Type="string" />

                      <Registry Root="HKCR" 
Key="CLSID\{94B68427-23BE-3B47-A3C9-928D32633723}\InprocServer32\1.0.0.6" 
Name="Assembly" Value="TAScriptAPI, Version=1.0.0.0, Culture=neutral, 
PublicKeyToken=ee37e07482172a30" Type="string" />

                      <Registry Root="HKCR" 
Key="CLSID\{94B68427-23BE-3B47-A3C9-928D32633723}\InprocServer32\1.0.0.6" 
Name="RuntimeVersion" Value="v2.0.50727" Type="string" />

                      <Registry Root="HKCR" 
Key="CLSID\{94B68427-23BE-3B47-A3C9-928D32633723}\InprocServer32\1.0.0.6" 
Name="CodeBase" Value="file:///[INSTALLLOCATION]TAScriptAPI.dll" Type="string" 
/>

                      <Registry Root="HKCR" 
Key="CLSID\{94B68427-23BE-3B47-A3C9-928D32633723}\ProgId" 
Value="TAScriptAPI.ScriptAPI" Type="string" />

                      <Registry Root="HKCR" 
Key="CLSID\{94B68427-23BE-3B47-A3C9-928D32633723}\Implemented 
Categories\{62C8FE65-4EBB-45e7-B440-6E39B2CDBF29}" />

 

I just had to include the tlb file, which is used to reference against, but is 
not used at run-time, just compile-time.

 

I ran regasm and had it output to a .reg file and compared all the entries – 
they matched up.  So it should be all good.  The only problem is, it doesn’t.  
If I install and try and use the COM object it doesn’t work. If I run regasm on 
my dll it works again.  So as far as I can tell regasm does something else 
apart from only the registry entries.  Am I wrong here?

 

I tried to put a typelib entry inside the File tag for my dll, but that just 
caused the installer to fail.  I’m not even sure that I should be use the 
typelib tag.

 

Thanks in advance

Jaco

 

 

No virus found in this outgoing message.
Checked by AVG.
Version: 7.5.524 / Virus Database: 269.23.3/1390 - Release Date: 21/04/2008 
16:23

 

No virus found in this incoming message.
Checked by AVG.
Version: 7.5.524 / Virus Database: 269.23.3/1390 - Release Date: 21/04/2008 
16:23


No virus found in this outgoing message.
Checked by AVG. 
Version: 7.5.524 / Virus Database: 269.23.3/1390 - Release Date: 21/04/2008 
16:23
 
-------------------------------------------------------------------------
This SF.net email is sponsored by the 2008 JavaOne(SM) Conference 
Don't miss this year's exciting event. There's still time to save $100. 
Use priority code J8TL2D2. 
http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

Reply via email to