Я пытаюсь удалить 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 и запустите, щелкнув правой кнопкой мыши и выбрав Запуск от имени администратора. Это сработало там, где все остальное не удалось.