Что такое GAC in.NET?
просто ищу краткий обзор GAC для непрофессионала, а не ссылку, пожалуйста.
8 ответов:
правильно, так что в основном это способ сохранить библиотеки DLL глобально доступными, не беспокоясь о конфликтах. Нет больше DLL ад. Каждая архитектура и версия получает свое собственное место для жизни.
Он также получает его собственный способ, чтобы просмотреть его в Проводнике, так что если вы идете в
C:\Windows\assembly
в проводнике windows он перечисляет все библиотеки DLL.
но если вы разжигаете
cmd
, вы можете видеть, как это на самом деле структуру:C:\Users\tritter>cd C:\Windows\assembly C:\Windows\assembly>dir Directory of C:\Windows\assembly 07/20/2009 02:18 PM <DIR> GAC 06/17/2009 04:22 PM <DIR> GAC_32 06/17/2009 04:22 PM <DIR> GAC_64 06/17/2009 04:22 PM <DIR> GAC_MSIL ...snip... 0 File(s) 0 bytes 9 Dir(s) 90,538,311,680 bytes free C:\Windows\assembly>cd GAC_64 C:\Windows\assembly\GAC_64>dir Directory of C:\Windows\assembly\GAC_64 06/17/2009 04:22 PM <DIR> . 06/17/2009 04:22 PM <DIR> .. 01/19/2008 09:54 AM <DIR> blbproxy ...snip... 01/19/2008 09:54 AM <DIR> srmlib 01/19/2008 06:11 AM <DIR> System.Data 01/19/2008 06:11 AM <DIR> System.Data.OracleClient ...snip... 0 File(s) 0 bytes 34 Dir(s) 90,538,311,680 bytes free C:\Windows\assembly\GAC_64>cd System.Data C:\Windows\assembly\GAC_64\System.Data>dir Directory of C:\Windows\assembly\GAC_64\System.Data 01/19/2008 06:11 AM <DIR> . 01/19/2008 06:11 AM <DIR> .. 04/11/2009 12:20 PM <DIR> 2.0.0.0__b77a5c561934e089 0 File(s) 0 bytes 3 Dir(s) 90,538,311,680 bytes free C:\Windows\assembly\GAC_64\System.Data>cd 2.0.0.0__b77a5c561934e089 C:\Windows\assembly\GAC_64\System.Data.0.0.0__b77a5c561934e089>dir Directory of C:\Windows\assembly\GAC_64\System.Data.0.0.0__b77a5c561934e089 04/11/2009 12:20 PM <DIR> . 04/11/2009 12:20 PM <DIR> .. 04/11/2009 12:12 PM 3,008,512 System.Data.dll 1 File(s) 3,008,512 bytes 2 Dir(s) 90,538,311,680 bytes free C:\Windows\assembly\GAC_64\System.Data.0.0.0__b77a5c561934e089>здесь вы можете увидеть версию 2.0.0.0__b77a5c561934e089 системы.Данные.
DLL идентифицируется по 5 частям:
- имя
- версия
- архитектура
- культура
- Публичный Ключ
хотя первые 3, как правило, большие.
GAC = глобальный кэш сборок
давайте разберем его:
- глобальный-применяется ко всей машине
- сборка-то, что .NET называет своими кодовыми библиотеками (DLL)
- кэш-место для хранения вещей для быстрого / общего доступа
каждый компьютер, где общие язык выполнения установлен имеет кэш кода называется глобальный кэш сборок. Мировой сборки хранятся в кэше сборок специально предназначенные для совместного по нескольким заявкам на компьютер.
вы должны делиться сборки установка их в глобальную сеть кэш сборок только тогда, когда это необходимо. В целом директива, держит агрегат зависимости частные, и найдите сборки в приложении каталог, если общий доступ к сборке явно требуется. Кроме того, устанавливать его не обязательно сборки в глобальную сборку кэша, чтобы сделать их доступными для COM взаимодействие или неуправляемый код.
то, что содержит MSDN, может вас удивить... обычно вы можете прочитать его как статью. Простые и самые важные биты наверху, сложные подробности ниже. Это, конечно, объясняет это лучше, чем я мог бы.
обратите внимание, что Visual Studio отображает все библиотеки DLL в GAC на вкладке .NET ссылки
Exe приложение, прежде всего, ссылки из текущего каталога в подкаталог. И затем, системный каталог. VS6.Система каталогов 0 был ..windows / system32. Системный каталог .NET похож на приведенный ниже путь GAC.
GAC path
1) C:\Windows\Assembly (для .NET 2.0 ~ 3.5)
2) C:\WINDOWS\Micorosoft.NET\assembly (для .NET 4.0)
Как установить сборку в GAC (а Администратор)
1) перетащить
2) Используйте GacUtil.exe с командной строкой Visual Studio
gacutil -i [Path][Assembly Name].dll
- Примечание: чтобы установить сборку в GAC, сборка должна иметь строгое имя. В противном случае вы получите сообщение об ошибке: сбой добавления сборки в кэш: Попытка установить сборку без строгого имени.
Как удалить сборку из GAC (а Администратор)
gacutil -u [Assembly Name], Version=1.0.0.0, PublickeyToken=7896a3567gh
- Примечание: не имеет расширение, .файл DLL. Версию и PublickeyToken можно опустить и проверить в сборке GAC.
глобальный кэш сборок (GAC) - это папка в каталоге Windows для хранения сборок .NET, специально предназначенных для совместного использования всеми приложениями, выполняемыми в системе. Сборки могут совместно использоваться несколькими приложениями на компьютере путем их регистрации в глобальном кэше сборок(GAC). GAC-это локальный кэш сборок, поддерживаемый платформой .NET Framework.