2

无论如何要从具有特定 PublicKeyToken 的 GAC 中卸载所有程序集?

我可以通过命令行(gacutil.exe 等)或通过 C# 解决方案。

编辑:

仅供参考,我可以通过 Windows 资源管理器执行此操作,然后转到程序集文件夹并按公钥排序,然后他们选择所有有问题的并右键单击并说卸载。如果这是唯一的方法,那么请确认,否则可以“自动化”的替代方案会很好。谢谢。

4

3 回答 3

3

使用命令行和一点 C# 很容易:

GacUtil /l  

列出 CSV 行上的所有程序集。
在 keytoken 上过滤它并将名称提供给removelist.txtfor

GacUtil /ul removelist.txt
于 2011-06-06T20:32:38.507 回答
1

如果你喜欢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]
    }
  }
于 2011-06-06T20:57:52.233 回答
0

您可以使用GAC API编写您自己的工具。是 API 的托管版本。

于 2011-06-06T21:15:36.857 回答