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