2016-11-17 4 views
1

У меня есть старая версия Enterprise Library в GAC. Он противостоит любой попытке его жизни, сделанной с GACUTIL.EXE, заявив следующее:Как удалить DLL из GAC, когда Gacutil.exe отказывается от службы

Microsoft (R). NET. Версия 3.5.30729.1 Copyright (c) Microsoft Corporation. Все права защищены.

Монтаж: Microsoft.Practices.EnterpriseLibrary.Common, Version = 4.1.0.0, культура = нейтральной, PublicKeyToken = e44a2bc38ed2c13c, processorArchitecture = MSIL
Невозможно удалить: сборка требует одного или нескольких приложений
Pending ссылок :
СХЕМА: <WINDOWS_INSTALLER> ID: <MSI> ОПИСАНИЕ: < установщик Windows >
Количество сборок неустановленных = 0 Количество отказов = 0

Я нашел несколько объяснений по этому вопросу here, но я не могу найти соответствующие разделы реестра.

Так что я хочу ядерный вариант. У кого его есть?

+0

Переустанавливает работоспособность ОС? это в значительной степени решение для ядер. –

+1

Сборка была помещена в GAC установщиком. Вы должны удалить его, запустив деинсталлятор для продукта, который нуждается в этой сборке. Или подумайте о том, чтобы не преднамеренно нарушить эту машину, единственный правильный совет. http://stackoverflow.com/a/2447331/17034 –

+0

Если вы в порядке с приложениями, которые могут/не работать, вы также можете вручную удалить папки. '% windir% \ Microsoft.NET \ assembly', найдите папки сборки и затем удалите их. Я бы не рекомендовал его, но это не моя машина. – Igor

ответ

0

Вы пробовали это? Он может работать, так как я не думаю, что он использует GacUtil:

С помощью интерфейса Windows,

Перейдите к GAC, который находится в% SYSTEMDRIVE% \ Windows \ Assembly.

Щелкните правой кнопкой мыши каждый файл сборки, который включен в ваше приложение, нажмите «Удалить» и затем нажмите «Да» для подтверждения.

MDSN Docs

я нашел что-то еще, посмотрите на это тоже: MS Support

+0

Деинсталляция не работает, когда Gacutil не работает. Но я, наконец, нашел ключи реестра, спасибо –

0

Если бы точно такая же проблема с OpenXml SDK Productivity Tool, который существует только в версии 2.5, но не в последнюю 2.8.1 ,

После обновления SDK для моей веб-страницы ASP.Net в Visual Studio с использованием диспетчера пакетов Nuget у меня возникла проблема, заключавшаяся в том, что во время публикации была издана старая «DocumentFormat.OpenXml V.2.5», а не новая (которая была правильно указана в моем проекте Visual Studio).

Итак, я решил сначала удалить старый SDK, используя страницу «Программы и компоненты», а затем «Удалить» -Использование файла установщика MSI.

Ни один из них не работал. Так или иначе, dll остается в GAC и в реестре. Я пытался удалить его с помощью Gacutil.exe, но я получил вышеуказанное сообщение:

Unable to uninstall: assembly is required by one or more applications 
Pending references: 
SCHEME: <WINDOWS_INSTALLER> ID: <MSI> DESCRIPTION : <Windows Installer> 

Затем я удалил значение ключа реестра для (только значение, не ключ САМ)

Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Installer\Assemblies\Global 
DocumentFormat.OpenXml,version="2.5.5631.0",culture="neutral",publicKeyToken="31BF3856AD364E35". 

И это сработало для меня. Впоследствии публикуется правильная dll! Надеюсь, это поможет кому-то!

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