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