Деинсталляция проекта установки VS 2008 из выпуска GAC - PullRequest
1 голос
/ 23 июня 2011

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

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

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

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

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

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

РЕДАКТИРОВАТЬ: Кстати, удаление файлов из GAC вручную через представление Explorer или с помощью gacutil.exe / u работает отлично.Однако я не думаю, что мне следует добавлять вызов gacutil в мой проект установки.Я чувствую, что это должно сделать это для меня.Тем не менее, я мог бы уделить слишком большое внимание проекту .NET Setup.

1 Ответ

0 голосов
/ 17 августа 2011

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

Компьютер \ HKEY_CURRENT \ USER \ Software \ Microsoft \Установщик \ Сборки \ Глобальный

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

...