无法从GAC卸载程序集?

时间:2010-03-15 13:13:38

标签: .net assemblies gac gacutil

我无法从GAC卸载程序集(log4net.dll)。它给出了以下错误。

“一个或多个应用程序需要组装”。

但是,如果我使用ProcessExplorer搜索程序集,则不会出现任何问题?如何从GAC中删除此程序集?

3 个答案:

答案 0 :(得分:26)

您是否考虑过阅读this KB article并尝试一下?

  

警告如果使用注册表编辑器或其他方法错误地修改了注册表,则可能会出现严重问题。这些问题可能需要您重新安装操作系统。微软无法保证可以解决这些问题。修改注册表需要您自担风险。

     

要解决此问题,请在注册表编辑器中检查以下子项的值列表:

     

HKEY_CURRENT_USER \ SOFTWARE \微软\安装\组件\环球   的 HKEY_LOCAL_MACHINE \ Software \ Classes下\安装\装配\全球

     

如果条目的值是Windows Installer描述符,请删除该条目。   例如,该值可能是一个神秘的REG_MULTI_SZ条目,类似于以下内容:   = ysgSC6wx9uiD1dqmmjW>!?米$ GP ^ D'甲@ Z} GN3} LTA

     

注意您必须删除该条目。不要只清除条目的值。

答案 1 :(得分:6)

最可能的原因是您已通过Windows Installer(msi-package)安装了log4net程序集。如果是这种情况,请尝试使用“添加/删除程序”将其卸载。

答案 2 :(得分:0)

以下步骤帮助我删除了Microsoft.ReportViewer.Common,Version=12.0.0,PublicKeyToken=89845dcd8080cc91 来自gac

cd %systemroot%\assembly\

在这里,您可能有多个“ gac”目录,因此您将不得不在每个目录中进行搜索以找到您的组件。

cd gac_msil
cd <assembly DLL name>
cd <assembly version number>__<public key token>

例如:12.0.0.0__89845dcd8080cc91

erase *.*

对“确定”说“ y”。

cd ..
rd <assembly version number>__<public key token>
cd ..
rd <assembly DLL name>