WiX: добавление записи в GAC при крупном обновлении

Я создал серьезное обновление для своего сценария установки, один из дополнительных компонентов необходимо вставить в GAC. Я использую следующую кодовую последовательность

<Component Id="Net20ApiAssembliesGAC" Guid="GUID">  
<File Id="FileId" Name="FileName" 
  DiskId="1" Assembly=".net" KeyPath="yes" 
  Source="..\..\API\DotNet\Assemblies\v2.0\FileName" />  
</Component>

Установка, а не обновление более ранней версии проходит успешно, однако при обновлении я получаю следующие записи в подробном журнале

UnregisterSharedComponentProvider

Компонент

и запись не отображается в GAC.

Я переместил RemoveExistingProducts с помощью ‹RemoveExistingProducts After =" InstallFinalize "/›, но это не дало результата.


person Martin Johnson    schedule 06.04.2011    source источник


Ответы (2)


Вы знаете, откуда вызывается отмена регистрации компонента. Этого не должно происходить, но может случиться так, что вложенная деинсталляция, инициированная RemoveExistingProducts, непреднамеренно удаляет ваши (новые) компоненты из GAC. Этого не должно произойти, если вы не сделали что-то вроде повторного использования GUID. Обычно REP не работает ни с чем, кроме удаления устаревших компонентов, которые планируется удалить.

person Stephen Connolly    schedule 06.04.2011
comment
Предполагая, что я понимаю вопрос, он находится в действии ‹TIMESTAMP›: ProcessComponents. Обновление регистрации компонента - person Martin Johnson; 06.04.2011

Имеет ли ключевой член файлового компонента более позднюю версию, чем версия в старом пакете? Это требуется установщику Windows для обновления старого компонента.

Если он использует ту же версию, старый компонент удаляется, а новый не устанавливается. Это известная ошибка установщика Windows.

person cosmin    schedule 07.04.2011
comment
Файла нет в исходном пакете, это дополнительный компонент - person Martin Johnson; 07.04.2011
comment
Извините, я изменил вопрос. - person cosmin; 07.04.2011