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 це дозволяє, та може бути використана програмами, які використовують різні версії однієї збірки окремо.
Див. також
ред.Примітки
ред.- ↑ Global Assembly Cache Tool (Gacutil.exe). Redmond, Washington: Microsoft Corporation. Архів оригіналу за 14 липня 2013. Процитовано 27 травня 2010.
- ↑ Assembly Cache Viewer (Shfusion.dll). Redmond, Washington: Microsoft Corporation. Архів оригіналу за 14 липня 2013. Процитовано 27 травня 2010. (англ.)
- ↑ How to: View the Contents of the Global Assembly Cache. Redmond, Washington: Microsoft Corporation. Архів оригіналу за 14 липня 2013. Процитовано 22 липня 2010. (англ.)
Посилання
ред.- .NET Framework Developer's Guide [Архівовано 6 жовтня 2008 у Wayback Machine.]
- Global Assembly Cache Tool (gacutil.exe) [Архівовано 15 жовтня 2008 у Wayback Machine.]
- Demystifying the .NET Global Assembly Cache