如何从程序集文件夹中卸载DLL? 从GAC卸载DLL时,权限被拒绝

我试图从Windows Server 2008上的C:\ Windows \ Assembly“文件夹”中卸载DLL,但得到“权限被拒绝”错误。 如何在不卸载整个应用程序的情况下去除DLL?

应用程序供应商向我发送了新的DLL,没有关于如何删除旧版本或添加这些新版本的说明。 谷歌一直没有像往常一样有帮助,要么…

这在之前并不奏效,但幸好我的最后一次尝试完成了。 去搞清楚…

我发现服务器上的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的解决scheme。 Gacutil是一个开发工具,通常不在生产系统上。

通过右键单击PowerShell并select“以pipe理员身份运行”来启动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 / u放在cmd文件中,右键单击并selectRun As Administrator(以pipe理员身份运行)。 这一切工作的地方一切build议失败。