Як переглянути папку та файли в GAC?


109

Я хочу переглянути папки та допоміжні папки в GAC . Також хочемо дізнатися про додавання та видалення з GAC .

Для встановлення записуємо ці рядки в командному рядку, відкриваючи Visual Studio command prompt:

gacutil /i [assembly path]

Але для видалення нам потрібно лише: -

gacutil /u [assembly name]

Чому?


Якщо ви переходите до однієї з папок збірки в каталозі Windows, введіть ім'я dll, яке ви шукаєте, на панелі пошуку (провідника файлів), вони повинні почати відображатися.
JakeJ

Відповіді:


135

Встановити:

gacutil -i "path_to_the_assembly"

Вид:

Відкрийте в папці Провідника Windows

  • .NET 1.0 - NET 3.5: c:\windows\assembly( %systemroot%\assembly)
  • .NET 4.x: %windir%\Microsoft.NET\assembly

АБО gacutil –l

Коли ви збираєтесь встановлювати збірку, ви повинні вказати, де її gacutilможна знайти, тому вам також потрібно надати повний шлях. Але коли збірка вже є в GAC - gacutilзнайте шлях до папки, тому просто потрібна назва збірки.

MSDN:


4
Зауважте, що зараз для .NET 4.0 розміщено GAC:% windir% \ Microsoft.NET \ Assembly \
Алекс Ноласко

57

Я запізнююся на день, і на цей день не вистачає долара. Якщо ви хочете переглянути структуру папок GAC у Windows Explorer, ви можете зробити це за допомогою реєстру :

  1. Запустіть regedit.
  2. Перейдіть до HKLM \ Software \ Microsoft \ Fusion
  3. Додайте DWORD під назвою DisableCacheViewer і встановіть значення 1.

Для тимчасового перегляду ви можете замінити диск на шлях папки, який позбавить спеціальних властивостей каталогу.

  1. Запустіть командний рядок на рівні привілеїв вашого облікового запису .
  2. Введіть SUBST Z: C: \ Windows \ збірка
    • Z може бути будь-яким літером безкоштовного диска.
  3. Відкрийте Мій комп’ютер і подивіться в новій каталозі замінників.
  4. Щоб видалити віртуальний привід з командного рядка, введіть SUBST Z: / D

Щодо того, чому ви хочете зробити щось подібне, я використав цей трюк для порівняння DLL-файлів GAC'd між різними машинами, щоб переконатися, що вони справді однакові.


Ви можете автоматизувати редагування реєстру за допомогою Powershell:
Textcape

Новий елемент 'HKLM: \ Software \ Microsoft \ Fusion' -Force | New-ItemProperty -Name "DisableCacheViewer" -PropertyType DWord -Value 1 -Force | Out-Null
Textcape

40

Запустіть програму "Запустити" (Windows Vista / 7/8: введіть її в рядок пошуку меню "Пуск") і введіть: C:\windows\assembly\GAC_MSIL

Потім перейдіть до батьківської папки (Windows Vista / 7/8: натиснувши на неї в панелі провідника), щоб побачити всі файли GAC у звичайному вікні провідника. Тепер ви можете копіювати, додавати та видаляти файли, як і скрізь.


Дякую - я дозволив мені використовувати Провідник Windows, який був позначений застарілим з .NET 4
Дейв Фріддел,

8

Щоб переглянути файли, просто перегляньте їх у командному рядку ( cmd), наприклад:

c:\>cd \Windows\assembly\GAC_32
c:\Windows\assembly\GAC_32> dir

Для додавання та видалення файлів з GAC використовуйте інструмент gacutil


Я хочу розглянути його як звичайну папку.
Rohit Vipin Mathews

@CodingMastero НЕ нормальна папка!
Клаус Бисков Педерсен

Не можемо ми використовувати якийсь хак, щоб переглянути його як звичайний?
Rohit Vipin Mathews

@CodingMastero Ні, ви не можете. Ви можете переглянути його в командному рядку, як зазначено вище.
Клаус Бисков Педерсен

1
Так. Вибачте, я, можливо, тут не зрозумів. Ви не можете використовувати C:\Windows\assemblyдля перегляду .NET 4.0 GAC. Звичайно, ви все одно можете використовувати його з .NET 2/3 (якщо це також встановлено). Немає порівнянних розширень оболонок (AFAIK), які б працювали аналогічно для нового C:\Windows\Microsoft.NET\assemblyкаталогу.
Крістіан.К

5

Ви встановлюєте як збірки, використовуючи:

  • Програма налаштування, автором якої є ваша заявка.
  • Використання gacutil.exeінструменту з -iопцією з командного рядка.
  • Видалення збірки в %windir%\Assembly(лише до .NET 3.5, CLR 2.0)

Ви переглядаєте вміст GAC за допомогою:

  • gacutil.exeІнструмент з -lопцією.
  • Для перегляду .NET 2.0, 3.0 та 3.5 (CLR 2.0) для %windir%\assemblyвикористання Windows Explorer.

Зауважте, що (фізичне) розташування GAC змінилось для .NET 4.0. Це вже не в %windir%\Assembly, але зараз в %windir%\Microsoft.NET\assembly. Однак ніколи не слід писати будь-який код, який залежатиме від фізичного розташування, так як це, з огляду на наявні інструменти, навряд чи потрібні (деякі «круті» інструменти діагностики домашніх систем убік).


Крім gacutil.exeтого, єдиний інший доступний інструмент, про який я знаю, це fusion.dll.
Скотт Солмер
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.