Автоматизация WIX и исправление поведения после изменения регистрации DLL - PullRequest
1 голос
/ 01 февраля 2010

У меня есть основная проблема, которую я не понимаю, мы используем 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)

Что произойдет во время исправления, удалится ли предыдущий реестр или останется ли он потерянным.

Я подозреваю, что, поскольку ключ (файл) компонента обновлен, это означает, что компонент будет установлен и оставит предыдущий ключ (реестр) * я еще не проверял это

1 Ответ

2 голосов
/ 08 августа 2010

Правильно. Патч - это на самом деле просто преобразование, примененное к MSI, после чего результат исправляется. Так как преобразование изменит MSI, он не будет знать о старых ключах реестра и оставит их без изменений.

Ваш патч нарушает Правила компонентов: http://robmensching.com/blog/posts/2003/10/18/Component-Rules-101, и это не поддерживается установщиком Windows.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...