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. ------------------------------------------------------------------------------ October Webinars: Code for Performance Free Intel webinars can help you accelerate application performance. Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from the latest Intel processors and coprocessors. See abstracts and register > http://pubads.g.doubleclick.net/gampad/clk?id=60134791&iu=/4140/ostg.clktrk _______________________________________________ WiX-devs mailing list WiX-devs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-devs