У меня есть основная проблема, которую я не понимаю, мы используем HEAT, чтобы использовать каталог артефактов, часть которых - COM DLL.
Как часть созданного файла WXS я вижу, что есть элементы для реестра, такие как:
<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>
Допустим, что во время исправления файл изменяется и регистрация изменяется таким образом, что изменился КЛЮЧ реестра (изначально интерфейс \ {D41A9260-ED8A-44BC-8700-08D3ADB20CFE} \ Forward)
Что произойдет во время исправления, удалится ли предыдущий реестр или останется ли он потерянным.
Я подозреваю, что, поскольку ключ (файл) компонента обновлен, это означает, что компонент будет установлен и оставит предыдущий ключ (реестр)
* я еще не проверял это