Назад | Перейти на главную страницу

Как удалить DLL из папки сборки? Отказано в разрешении при удалении DLL из GAC

Я пытаюсь удалить DLL из «папки» C: \ Windows \ Assembly в Windows Server 2008, но получаю сообщение об ошибке «В разрешении отказано». Как мне удалить DLL без удаления всего приложения?

Поставщик приложения прислал мне новые библиотеки DLL без каких-либо инструкций, как удалить старую версию или добавить эти новые. Google тоже не так полезен, как обычно ...

Я знаю, что опаздываю на вечеринку, но вот еще одно решение с использованием Powershell, если у вас нет gacutil.exe. Gacutil - это инструмент разработки, которого обычно нет в производственных системах.

Запустите PowerShell, используя запрос с повышенными привилегиями, щелкнув его правой кнопкой мыши и выбрав «Запуск от имени администратора». Затем введите или скопируйте / вставьте следующее:

$pathToFile = 'PathAndFilename.dll'
[System.Reflection.Assembly]::Load("System.EnterpriseServices, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")
$publish = New-Object System.EnterpriseServices.Internal.Publish
$publish.GacRemove($pathToFile)

Если хочешь установить копию в GAC, измените последнюю строку на это:

$publish.GacInstall($pathToFile)

Раньше это не работало, но, к счастью, сработало с моей последней попытки. Иди разбери ...

я нашел gacutil.exe на сервере и запустил gacutil -u dllName.DLL Установка новой DLL была простой gacutil -i "PathAndFilenameOfNewDLL"

http://msdn.microsoft.com/en-us/library/zykhfde0%28VS.80%29.aspx

Поместите gacutil / u в файл cmd и запустите, щелкнув правой кнопкой мыши и выбрав Запуск от имени администратора. Это сработало там, где все остальное не удалось.