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
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

Reply via email to