WiX: добавление записи в GAC в основном обновлении - PullRequest
3 голосов
/ 06 апреля 2011

Я создал серьезное обновление для моего установочного скрипта, один из дополнительных компонентов должен быть вставлен в 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

ComponentUnregister

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

Я переместил RemoveExistingProducts с помощью , но это не дало эффекта.

Ответы [ 2 ]

1 голос
/ 06 апреля 2011

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

0 голосов
/ 07 апреля 2011

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

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

...