|
From: scubasteve2 <Ste...@nu...> - 2013-10-03 20:09:21
|
I have found that this is caused by adding the entries from a heat extraction
of a COM library as well as some extra-manual RegistryValue elements for the
interfaces under HKCR.
Example causing the exception:
<Component Id="myfile.dll"
Guid="{7D7D1D5B-F729-4223-8B91-0C82640B3477}" Win64="no">
<File Id="myfile.dll" Name="myfile.dll" KeyPath="yes">
<TypeLib Id="{9E33FF69-BCFD-4ADD-9D41-51A534799ED4}"
Description="myfile 1.0 Type Library" Language="0" MajorVersion="1"
MinorVersion="0">
<Class Id="{90FF92CC-2B09-41D9-9F98-5C9C9E23DE82}"
Context="InprocServer32" Description="myfile core Class"
ThreadingModel="apartment" Version="1.0" Programmable="yes" Control="yes">
<ProgId Id="myfile.Core.1" Description="myfileCore Class">
<ProgId Id="myfile.Core" Description="myfileCore Class" />
</ProgId>
</Class>
<Interface Id="{17BBCCB6-6D96-4C40-957B-C5F138C8C16C}"
Name="IInterface1"
ProxyStubClassId32="{00020424-0000-0000-C000-000000000046}" />
<Interface Id="{6E6A098C-787D-4E31-BD38-91160D4092A7}"
Name="_IInterface2"
ProxyStubClassId32="{00020420-0000-0000-C000-000000000046}" />
<Interface Id="{D41C4CE0-1DEA-4658-9CD5-30307FA6DC95}"
Name="IInterface3"
ProxyStubClassId32="{00020424-0000-0000-C000-000000000046}" />
</TypeLib>
</File>
<RegistryValue Root="HKCR"
Key="CLSID\{90FF92CC-2B09-41D9-9F98-5C9C9E23DE82}" Name="AppID" Value=""
Type="string" />
<RegistryValue Root="HKCR"
Key="CLSID\{90FF92CC-2B09-41D9-9F98-5C9C9E23DE82}\Control" Value=""
Type="string" />
<RegistryValue Root="HKCR"
Key="CLSID\{90FF92CC-2B09-41D9-9F98-5C9C9E23DE82}\InprocServer32"
Name="ThreadingModel" Value="Apartment" Type="string" />
<RegistryValue Root="HKCR"
Key="CLSID\{90FF92CC-2B09-41D9-9F98-5C9C9E23DE82}\MiscStatus" Value="0"
Type="string" />
<RegistryValue Root="HKCR"
Key="CLSID\{90FF92CC-2B09-41D9-9F98-5C9C9E23DE82}\MiscStatus\1"
Value="131473" Type="string" />
<RegistryValue Root="HKCR"
Key="CLSID\{90FF92CC-2B09-41D9-9F98-5C9C9E23DE82}\Programmable" Value=""
Type="string" />
<RegistryValue Root="HKCR"
Key="CLSID\{90FF92CC-2B09-41D9-9F98-5C9C9E23DE82}\ToolboxBitmap32"
Value="[!myfile.dll], 103" Type="string" Action="write" />
<RegistryValue Root="HKCR"
Key="CLSID\{90FF92CC-2B09-41D9-9F98-5C9C9E23DE82}\TypeLib"
Value="{9E33FF69-BCFD-4ADD-9D41-51A534799ED4}" Type="string" />
<RegistryValue Root="HKCR"
Key="CLSID\{90FF92CC-2B09-41D9-9F98-5C9C9E23DE82}\Version" Value="1.0"
Type="string" />
<RegistryValue Root="HKCR"
Key="Interface\{17BBCCB6-6D96-4C40-957B-C5F138C8C16C}" Value="IInterface1"
Type="string" />
<RegistryValue Root="HKCR"
Key="Interface\{17BBCCB6-6D96-4C40-957B-C5F138C8C16C}\ProxyStubClsid32"
Value="{00020424-0000-0000-C000-000000000046}" Type="string" />
<RegistryValue Root="HKCR"
Key="Interface\{17BBCCB6-6D96-4C40-957B-C5F138C8C16C}\TypeLib"
Value="{9E33FF69-BCFD-4ADD-9D41-51A534799ED4}" Type="string" />
<RegistryValue Root="HKCR"
Key="Interface\{17BBCCB6-6D96-4C40-957B-C5F138C8C16C}\TypeLib"
Name="Version" Value="1.0" Type="string" />
<RegistryValue Root="HKCR"
Key="Interface\{6E6A098C-787D-4E31-BD38-91160D4092A7}" Value="_IInterface2"
Type="string" />
<RegistryValue Root="HKCR"
Key="Interface\{6E6A098C-787D-4E31-BD38-91160D4092A7}\ProxyStubClsid32"
Value="{00020420-0000-0000-C000-000000000046}" Type="string" />
<RegistryValue Root="HKCR"
Key="Interface\{6E6A098C-787D-4E31-BD38-91160D4092A7}\TypeLib"
Value="{9E33FF69-BCFD-4ADD-9D41-51A534799ED4}" Type="string" />
<RegistryValue Root="HKCR"
Key="Interface\{6E6A098C-787D-4E31-BD38-91160D4092A7}\TypeLib"
Name="Version" Value="1.0" Type="string" />
<RegistryValue Root="HKCR"
Key="Interface\{D41C4CE0-1DEA-4658-9CD5-30307FA6DC95}" Value="IInterface3"
Type="string" />
<RegistryValue Root="HKCR"
Key="Interface\{D41C4CE0-1DEA-4658-9CD5-30307FA6DC95}\ProxyStubClsid32"
Value="{00020424-0000-0000-C000-000000000046}" Type="string" />
<RegistryValue Root="HKCR"
Key="Interface\{D41C4CE0-1DEA-4658-9CD5-30307FA6DC95}\TypeLib"
Value="{9E33FF69-BCFD-4ADD-9D41-51A534799ED4}" Type="string" />
<RegistryValue Root="HKCR"
Key="Interface\{D41C4CE0-1DEA-4658-9CD5-30307FA6DC95}\TypeLib"
Name="Version" Value="1.0" Type="string" />
<RegistryValue Root="HKCR"
Key="TypeLib\{9E33FF69-BCFD-4ADD-9D41-51A534799ED4}\1.0" Value="myfile 1.0
Type Library" Type="string" />
<RegistryValue Root="HKCR"
Key="TypeLib\{9E33FF69-BCFD-4ADD-9D41-51A534799ED4}\1.0\0\win32"
Value="[!myfile.dll]" Type="string" />
<RegistryValue Root="HKCR"
Key="TypeLib\{9E33FF69-BCFD-4ADD-9D41-51A534799ED4}\1.0\FLAGS" Value="0"
Type="string" />
<RegistryValue Root="HKCR"
Key="TypeLib\{9E33FF69-BCFD-4ADD-9D41-51A534799ED4}\1.0\HELPDIR"
Value="[$myfile.dll]" Type="string" />
</Component>
To fix it simply put in your component only what heat.exe generates. I
would put business-logic specific registry entries in another component and
fragment.
--
View this message in context: http://windows-installer-xml-wix-toolset.687559.n2.nabble.com/Re-light-exe-error-LGHT0001-Item-has-already-been-added-Key-in-dictionary-tp7584833p7589434.html
Sent from the wix-devs mailing list archive at Nabble.com.
|