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. Архів оригіналу за 2013-07-14. Процитовано 2010-05-27. 
  2. «Assembly Cache Viewer (Shfusion.dll)». Redmond, Washington: Microsoft Corporation. Архів оригіналу за 2013-07-14. Процитовано 2010-05-27.  (англ.)
  3. «How to: View the Contents of the Global Assembly Cache». Redmond, Washington: Microsoft Corporation. Архів оригіналу за 2013-07-14. Процитовано 2010-07-22.  (англ.)

Посилання[ред.ред. код]