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
-------------------------------------------------------------------------
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