如何通过PublicKeyToken从GAC大量卸载程序集?

问题描述

| 无论如何,是否要从GAC卸载所有具有特定PublicKeyToken的程序集? 我可以通过命令行(gacutil.exe等)或通过C#解决方案。 编辑: 仅供参考,我可以通过Windows资源管理器执行此操作,然后转到Assembly文件夹并按公钥排序,然后他们选择所有有问题的文件,然后右键单击并说卸载。如果这是唯一的方法,那么请确认,否则可能是“自动”的替代方法会很好。谢谢。     

解决方法

        使用命令行和一些C#,很容易:
GacUtil /l  
列出CSV行上的所有程序集。 在按键令牌上对此进行过滤,并将名称提供给
removelist.txt
GacUtil /ul removelist.txt
    ,        如果您喜欢
Powershell
,则可以使用以下方法:
& \'C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0A\\bin\\gacutil.exe\' /L | 
  where { $_ -match \'^  ([\\w\\.]+,.*)$\' } |
  foreach {
    if ($matches[1].contains(\"PublicKeyToken=d7e1d90e83a016b1\")) {
      & \'C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0A\\bin\\gacutil.exe\' /u $matches[1]
    }
  }
    ,        您可以使用GAC API编写自己的工具。这是API的托管版本。     

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...