Hello,
I've read through all the wix-users responses (and am fully aware that it
has been covered many times), but I am still unsuccessful in getting my
assembly registered correctly. Note that I'm not a .Net programmer - my role
is to assemble installers - so apologies if some of this is FAQ material.
I have a .Net COM service whose manual registration as follows works OK:
regasm SystemServices.dll /codebase
However I would prefer not to run a CustomAction to perform a regasm on
this.
Sending the output to a reg file gives entries such as:
HKEY_CLASSES_ROOT\System.SoapClient.ActionItemServiceSoapBinding]
@="System.SoapClient.ActionItemServiceSoapBinding"
[HKEY_CLASSES_ROOT\System.SoapClient.ActionItemServiceSoapBinding\CLSID]
@="{CB7F123F-19B7-4963-9D48-2A18655135CB}"
[HKEY_CLASSES_ROOT\CLSID\{CB7F123F-19B7-4963-9D48-2A18655135CB}]
@="System.SoapClient.ActionItemServiceSoapBinding"
[HKEY_CLASSES_ROOT\CLSID\{CB7F123F-19B7-4963-9D48-2A18655135CB}\InprocServer
32]
@="mscoree.dll"
"ThreadingModel"="Both"
"Class"="System.SoapClient.ActionItemServiceSoapBinding"
"Assembly"="SystemServices, Version=5.8.0.0, Culture=neutral,
PublicKeyToken=0c9936e17310ce71"
"RuntimeVersion"="v2.0.50727"
"CodeBase"="file:///C:/Program Files/Company/System
5.8.0.69/Client/SystemServices.dll"
[HKEY_CLASSES_ROOT\CLSID\{CB7F123F-19B7-4963-9D48-2A18655135CB}\InprocServer
32\5.8.0.0]
"Class"="System.SoapClient.ActionItemServiceSoapBinding"
"Assembly"="SystemServices, Version=5.8.0.0, Culture=neutral,
PublicKeyToken=0c9936e17310ce71"
"RuntimeVersion"="v2.0.50727"
"CodeBase"="file:///C:/Program Files/Company/System
5.8.0.69/Client/SystemServices.dll"
[HKEY_CLASSES_ROOT\CLSID\{CB7F123F-19B7-4963-9D48-2A18655135CB}\ProgId]
@="System.SoapClient.ActionItemServiceSoapBinding"
[HKEY_CLASSES_ROOT\CLSID\{CB7F123F-19B7-4963-9D48-2A18655135CB}\Implemented
Categories\{62C8FE65-4EBB-45E7-B440-6E39B2CDBF29}]
Running Heat on my DLL gives me:
<Component Id="SoapServices.Primary_output"
Guid="{AC47838F-805B-4F5F-9BB8-76839F54630A}">
<File Id="SystemServices.dll" Assembly=".net" KeyPath="yes"
Source="$(var.SoapServices.TargetPath)">
<Class Id="{CB7F123F-19B7-4963-9D48-2A18655135CB}"
Context="InprocServer32"
Description="System.SoapClient.ActionItemServiceSoapBinding"
ThreadingModel="both">
<ProgId
Id="System.SoapClient.ActionItemServiceSoapBinding"
Description="System.SoapClient.ActionItemServiceSoapBinding" />
</Class>
</File>
<ProgId Id="Record" />
<RegistryValue Root="HKCR"
Key="CLSID\{CB7F123F-19B7-4963-9D48-2A18655135CB}\Implemented
Categories\{62C8FE65-4EBB-45e7-B440-6E39B2CDBF29}" Value="" Type="string"
Action="write" />
<RegistryValue Root="HKCR"
Key="CLSID\{CB7F123F-19B7-4963-9D48-2A18655135CB}\InprocServer32\5.8.0.0"
Name="Class" Value="System.SoapClient.ActionItemServiceSoapBinding"
Type="string" Action="write" />
<RegistryValue Root="HKCR"
Key="CLSID\{CB7F123F-19B7-4963-9D48-2A18655135CB}\InprocServer32\5.8.0.0"
Name="Assembly" Value="SystemServices, Version=5.8.0.0, Culture=neutral,
PublicKeyToken=0c9936e17310ce71" Type="string" Action="write" />
<RegistryValue Root="HKCR"
Key="CLSID\{CB7F123F-19B7-4963-9D48-2A18655135CB}\InprocServer32\5.8.0.0"
Name="RuntimeVersion" Value="v2.0.50727" Type="string" Action="write" />
<RegistryValue Root="HKCR"
Key="CLSID\{CB7F123F-19B7-4963-9D48-2A18655135CB}\InprocServer32\5.8.0.0"
Name="CodeBase" Value="file:///[#SystemServices.dll]" Type="string"
Action="write" />
<RegistryValue Root="HKCR"
Key="CLSID\{CB7F123F-19B7-4963-9D48-2A18655135CB}\InprocServer32"
Value="mscoree.dll" Type="string" Action="write" />
<RegistryValue Root="HKCR"
Key="CLSID\{CB7F123F-19B7-4963-9D48-2A18655135CB}\InprocServer32"
Name="Class" Value="System.SoapClient.ActionItemServiceSoapBinding"
Type="string" Action="write" />
<RegistryValue Root="HKCR"
Key="CLSID\{CB7F123F-19B7-4963-9D48-2A18655135CB}\InprocServer32"
Name="Assembly" Value="SystemServices, Version=5.8.0.0, Culture=neutral,
PublicKeyToken=0c9936e17310ce71" Type="string" Action="write" />
<RegistryValue Root="HKCR"
Key="CLSID\{CB7F123F-19B7-4963-9D48-2A18655135CB}\InprocServer32"
Name="RuntimeVersion" Value="v2.0.50727" Type="string" Action="write" />
<RegistryValue Root="HKCR"
Key="CLSID\{CB7F123F-19B7-4963-9D48-2A18655135CB}\InprocServer32"
Name="CodeBase" Value="file:///[#SystemServices.dll]" Type="string"
Action="write" />
</Component>
But I get the error about the duplicate key in Registry when compiling.
Note that I have another 1100 entries much like the above.
My question is simple. What do I need to change in the WiX file to get the
system to register things in the same was as regasm /codebase? Will adding a
new unique ID to RegistryValue resolve this? I'm happy to postprocess the
heat output if necessary.
If this is a bug in Heat - what is needed to resolve the bug so we can get
it fixed?
Many thanks for any pointers.
Ben
-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
WiX-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/wix-users