2011-06-23 2 views
1

У нас есть решение с проектами, которые выгружают первичный вывод в GAC. Мы должны сделать это, потому что наше программное обеспечение является плагином для другого приложения, которое может быть установлено где угодно и которое может иметь несколько версий, установленных одновременно.Проект установки VS 2008 Удаление из проблемы GAC

У нас возникли проблемы с обновлением и удалением из нашего MSI. Проблема, с которой мы сталкиваемся, затрагивает нас по обе стороны установки RemovePreviousVersions.

  • Когда RemovePreviousVersions = False, то требует, чтобы пользователь деинсталлировать приложение вручную. Это было бы хорошо с нами, если бы деинсталлятор действительно работал правильно. Однако при удалении из библиотеки DLL , задерживающейся в GAC И , установка следующей версии установщика не перезаписывает DLL в GAC, так как их номера версий совпадают.

  • Когда RemovePreviousVersions = True, установки позже MSI версия возвышаться из уже установленных приложения не перезаписывать библиотеки DLL в GAC предположительно потому, что версия DLL является одинаковой или потому, что удаление не работает , Я не уверен, что знаю достаточно, чтобы узнать, в чем причина.

Все, что мы хотим сделать, это либо иметь возможность деинсталяции работу должным образом или обновление фактически RemovePreviousVersions правильно и установить новую версию без вмешательства. Я не вижу причины менять все свои DLL-версии. Мы не заботимся о версии слишком много, кроме как узнать, какая версия общего приложения включена, и мы можем сделать это, установив версию проекта установки, и все.

FWIW, мы не можем использовать WIX, потому что есть ограничения с некоторыми из сторонних многопроцессорных DLL, которые нам нужно использовать, которые не могут быть легко добавлены в GAC с помощью WIX, но отлично работают с помощью проекта VS Setup.

EDIT: Кстати, удаляя файлы из GAC вручную с помощью представления проводника или с помощью Gacutil.exe/и отлично работает. Тем не менее, я не думаю, что должен добавить вызов gacutil в мой проект настройки. Я чувствую, что он должен сделать это для меня. Хотя, я мог бы дать проекту .NET Setup слишком много кредитов.

ответ

0

Что касается проекта установки не удалить сборку из GAC: Вы проверили реестр, что не задерживаясь ссылка на него в

Computer \ HKEY_CURRENT \ USER \ Software \ Microsoft \ Installer \ Агрегаты \ Глобальные

после удаления? У меня была аналогичная проблема, и как только я удалил запись вручную из реестра, удаление впоследствии удалило сборку из GAC правильно.

Смежные вопросы