Global Assembly Cache

Global Assembly Cache (укр. Глобальний кеш збірок) або GAC — це кеш .NET-збірок для платформи Microsoft's CLR в межах одного комп'ютеру. Концепція контрольованого єдиного репозиторію адрес та загальних бібліотек (shared libraries) допомагає уникати пасток, які ведуть до таких проблем, як DLL hell — проблеми підтримки бібліотек без зворотної сумісності та стандартів іменування.

Вимоги

.NET-збірки, які розташовані у GAC повинні дотримуватися спеціальних правил для керування версіями, які дозволяють коду з різних версій виконуватись в контексті однієї програми, методу. Збірки у GAC повинні іменуватися згідно з конвенцією іменування Strong key.

Використання

Microsoft підтримує два шляхи для роботи з Global Assembly Cache:

  • Global Assembly Cache Tool (gacutil.exe)
  • Assembly Cache Viewer (shfusion.dll)

Global Assembly Cache Tool

gacutil.exe це стара утиліта командного рядка, яка входила ще до .NET 1.1 та досі доступна у .NET SDK.[1]

Команда для перевірки доступності збірки в GAC:

gacutil.exe /l <assemblyName>

Команда для реєстрації збірки в GAC:

gacutil.exe /i <assemblyName>

Зареєструвати збірку можна й звичним копіюванням файлів у директорію:

%windir%\assembly\

У .NET 4.0 ця директорія змінена на:

%windir%\Microsoft.NET\assembly\.

Інші параметри утиліти можна прочитати, додавши прапорець /?:

gacutil.exe /?

Assembly Cache Viewer

Це інтерфейс роботи з кешем, інтегрований в Windows Explorer[2]. Цей файловий менеджер дозволяє бачити всі сбірки, які входять у GAC, їх версії, публічні ключі, та цільову архітектуру. Збірки інсталюються за допогому drag-n-drop та деінсталюються звичним видаленням файлів.

Разом з випуском .Net Framework 4, Assembly Cache Viewer була визнана застарілою.[3]

Приклад використання

Уявимо, що на комп'ютері є дві .NET-збірки, що мають однакове ім'я AssemblyA, але одна з них має версію 1.0, а інша — 2.0. Оскільки GAC потребує, щоб обидві збірки мали ім'я AssemblyA, вони не можуть існувати в одній директорії в файлових системах FAT32 та NTFS. Зате, віртуальна файлова система Global Assembly Cache це дозволяє, та може бути використана програмами, які використовують різні версії однієї збірки окремо.

Див. також

Примітки

  1. Global Assembly Cache Tool (Gacutil.exe). Redmond, Washington: Microsoft Corporation. Архів оригіналу за 14 липня 2013. Процитовано 27 травня 2010.
  2. Assembly Cache Viewer (Shfusion.dll). Redmond, Washington: Microsoft Corporation. Архів оригіналу за 14 липня 2013. Процитовано 27 травня 2010. (англ.)
  3. How to: View the Contents of the Global Assembly Cache. Redmond, Washington: Microsoft Corporation. Архів оригіналу за 14 липня 2013. Процитовано 22 липня 2010. (англ.)

Посилання