I have basic issue that i don't understand, we use HEAT to consume directory of artifacts that part of them are COM DLL. As part of the crated WXS file i see that there are elements for registry like:
<Component Id="cmpAE50B39B8817E1840F09193686006FFA" Guid="*"> <File Id="fil7BDB953AB6AAEC9E98E28F49D87BABA3" KeyPath="yes" Source="SourceDir\ucfDistribution.dll"> <TypeLib Id="{88B7EEC8-DF2B-11D4-A508-005004ED3088}" Description="ucfDistribution" HelpDirectory="dir83BF4093F80DD11BB416BF39954702C2" Language="0" MajorVersion="14" MinorVersion="13"> <Class Id="{3AA1580F-1DA2-44A5-B581-98D861C2A0CD}" Context="InprocServer32" Description="ucfDistribution.ucfCMAXMLClass" ThreadingModel="apartment" Version="14.13" Programmable="yes"> <ProgId Id="ucfDistribution.ucfCMAXMLClass" Description="ucfDistribution.ucfCMAXMLClass" /> </Class> <Interface Id="{A98DFC45-F161-442D-9A10-3CB3103B524F}" Name="ucfCMAXMLClass" ProxyStubClassId="{00020424-0000-0000-C000-000000000046}" ProxyStubClassId32="{00020424-0000-0000-C000-000000000046}" /> </TypeLib> </File> <RegistryValue Root="HKCR" Key="Interface\{D41A9260-ED8A-44BC-8700-08D3ADB20CFE}\Forward" Value="{A98DFC45-F161-442D-9A10-3CB3103B524F}" Type="string" Action="write" /> </Component>
Lets say that during patch the file is changed & registration is change in such way that the KEY of the registry changed (was originally Interface\{D41A9260-ED8A-44BC-8700-08D3ADB20CFE}\Forward)
What will happen during patch will the previous registry be removed or will it stay orphaned.
I suspect that since the component key (file) is updated this means that the component will install and will leave the previous key (registry) * i didn't test this yet