我正在尝试从 Windows Server 2008 上的 C:\Windows\Assembly“文件夹”卸载 DLL,但收到“权限被拒绝”错误。如何在不卸载整个应用程序的情况下删除 DLL?
应用程序供应商向我发送了新的 DLL,但没有说明如何删除旧版本或添加新版本。Google 也没有像往常一样提供帮助...
答案1
以前这个方法没用过,不过幸好我上次尝试的时候成功了。想想看...
我发现工具程序在服务器上运行gacutil -u dllName.DLL
安装新的 DLL 很简单gacutil -i "PathAndFilenameOfNewDLL"
http://msdn.microsoft.com/en-us/library/zykhfde0%28VS.80%29.aspx
答案2
我知道我来晚了,但如果您没有 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)
答案3
将 gacutil /u 放入 cmd 文件中,然后右键单击并选择以管理员身份运行。此方法有效,而其他所有建议均失败。