Как вы можете сделать массовую выгрузку сборок из GAC PublicKeyToken? - PullRequest
2 голосов
/ 07 июня 2011

Есть ли способ выгрузить все сборки из GAC, которые имеют определенный PublicKeyToken?

Я согласен с решением, использующим командную строку (gacutil.exe и т. Д.) Или через C #.

РЕДАКТИРОВАТЬ:

К вашему сведению, я могу сделать это через Windows Explorerи перейдя в папку сборки и отсортировать по открытому ключу, и они выбирают все те, о которых идет речь, и щелкните правой кнопкой мыши и произнесите удалить.Если это единственный способ, пожалуйста, подтвердите, в противном случае альтернативы, которые могут быть «автоматизированы», были бы хорошими.Благодарю.

Ответы [ 3 ]

3 голосов
/ 07 июня 2011

С командной строкой и небольшим C # это легко:

GacUtil /l  

Перечисляет все сборки на линиях CSV.
Отфильтруйте это по ключевому токену и введите имена в removelist.txt для

GacUtil /ul removelist.txt
1 голос
/ 07 июня 2011

Если вам нравится 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]
    }
  }
0 голосов
/ 07 июня 2011

Вы можете использовать GAC API для кодирования своего собственного инструмента. Здесь - это управляемая версия API.

...