2016-11-17 93 views
1

我在GAC中拥有旧版的企业库。它拒绝任何使用GACUTIL.EXE进行的尝试,声称以下内容:Gacutil.exe拒绝服务时如何从GAC中删除dll

Microsoft(R).NET全局程序集缓存实用程序。版本3.5.30729.1 版权所有(c)Microsoft Corporation。版权所有。

装配:Microsoft.Practices.EnterpriseLibrary.Common, 版本= 4.1.0.0,文化=中性公钥= e44a2bc38ed2c13c,ProcessorArchitecture用于= MSIL
无法卸载:装配由一个或多个应用程序
待定引用所需:
方案:<WINDOWS_INSTALLER> ID:<MSI>说明:< Windows安装>
编号卸载= 0失败的次数组件= 0

我在主题here上找到了一些解释,但找不到任何相关的注册表项。

所以我想要核选项。谁得到了一个?

+0

重新安装操作系统是否可行?这几乎是一个核武器解决方案。 –

+1

安装程序将该程序集放入GAC。您应该通过运行需要此程序集的产品的卸载程序来删除它。或者考虑不要故意破坏那台机器,唯一适当的建议。 http://stackoverflow.com/a/2447331/17034 –

+0

如果您确定可能会/可能无法运行的应用程序,那么也可以手动删除这些文件夹。 '%windir%\ Microsoft.NET \ assembly',找到程序集文件夹,然后删除它们。我不会推荐它,但它不是我的机器。 – Igor

回答

0

你试过吗?它可以工作,因为我不认为它的使用GACUTIL:

使用Windows界面

导航到GAC,它位于%SYSTEMDRIVE%\的Windows \大会。

右键单击包含在应用程序中的每个程序集文件,单击卸载,然后单击是进行确认。

MDSN Docs

我发现别的东西,看看这个太: MS Support

+0

当Gacutil不起作用时,卸载不起作用。但是我终于找到了注册表项,谢谢 –

0

曾与OpenXML的SDK生产力工具仅在2.5版本存在,但不是在最新的2.8.1完全相同的问题。

在使用Nuget Package Manager在Visual Studio中更新我的ASP.Net网页的SDK后,我遇到了问题,即在发布过程中发布了旧的“DocumentFormat.OpenXml V.2.5”dll,而不是新的在我的Visual Studio项目中被正确引用)。

因此,我决定先使用“程序和功能”页面卸载旧SDK,然后再卸载MSI安装程序文件的“卸载”选项。

它都没有工作。不知何故,该DLL仍然在GAC和注册表中。我试着用的Gacutil.exe卸载它,但我得到了上述消息:

Unable to uninstall: assembly is required by one or more applications 
Pending references: 
SCHEME: <WINDOWS_INSTALLER> ID: <MSI> DESCRIPTION : <Windows Installer> 

然后我删除注册表项值(仅值,而不是密钥本身)

Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Installer\Assemblies\Global 
DocumentFormat.OpenXml,version="2.5.5631.0",culture="neutral",publicKeyToken="31BF3856AD364E35". 

而且这对我有效。之后,正确的DLL发布!希望它能帮助别人!