Windows

如何從程序集文件夾中解除安裝 DLL?從 GAC 解除安裝 DLL 時權限被拒絕

  • September 23, 2014

我正在嘗試從 Windows Server 2008 上的 C:\Windows\Assembly“文件夾”解除安裝 DLL,但收到“權限被拒絕”錯誤。如何在不解除安裝整個應用程序的情況下刪除 DLL?

應用程序供應商向我發送了新的 DLL,但沒有說明如何刪除舊版本或添加這些新版本。Google也沒有像往常那樣樂於助人……

這以前不起作用,但幸運的是我最後一次嘗試。去搞清楚…

我在伺服器上找到gacutil.exe並執行gacutil -u dllName.DLL 安裝新的 DLL 很簡單gacutil -i "PathAndFilenameOfNewDLL"

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

我知道我遲到了,但如果你沒有 gacutil.exe,這裡是另一個使用 Powershell 的解決方案。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)

引用自:https://serverfault.com/questions/177163