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. (англ.)

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