我在GAC中有一个旧版本的企业库。它抵制任何使用GACUTIL.EXE声称具有以下内容的生命尝试:
Microsoft(R).NET全局程序集缓存实用程序。版本3.5.30729.1 版权所有(c)Microsoft Corporation。保留所有权利。
程序集:Microsoft.Practices.EnterpriseLibrary.Common, Version = 4.1.0.0,Culture = neutral,PublicKeyToken = e44a2bc38ed2c13c,processorArchitecture = MSIL
无法卸载:一个或多个应用程序需要组装 待定参考文献:
方案:< WINDOWS_INSTALLER> ID:< MSI>描述:< Windows Installer>
卸载的程序集数= 0故障数= 0
我找到了关于主题here的一些解释,但我找不到任何相关的注册表项。
所以我想要核选项。谁有一个?
答案 0 :(得分:0)
你试过这个吗?它可能有用,因为我不认为它使用GacUtil:
使用Windows界面
导航到GAC,它位于%systemdrive%\ Windows \ Assembly。
右键单击应用程序中包含的每个程序集文件,单击“卸载”,然后单击“是”进行确认。
我找到了别的东西,看看这个: MS Support
答案 1 :(得分: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!希望它可以帮助别人!