Просто найдите краткий обзор GAC для непрофессионала, а не ссылку.
Что такое GAC в .NET?
Ответ 1
Правильно, поэтому в основном это способ поддерживать доступ к DLL глобально, не беспокоясь о конфликтах. Больше не DLL Hell. Каждая архитектура и версия получает свое собственное место для жизни.
Он также получает собственный способ просмотра в проводнике, поэтому, если вы перейдете к
C:\Windows\узел
В проводнике 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\2.0.0.0__b77a5c561934e089>dir Directory of C:\Windows\assembly\GAC_64\System.Data\2.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\2.0.0.0__b77a5c561934e089>
Здесь вы можете увидеть версию 2.0.0.0__b77a5c561934e089 из System.Data.
DLL идентифицируется по 5 частям:
- Имя
- Версия
- Архитектура
- Культура
- Открытый ключ
Хотя первые 3 обычно являются большими.
Ответ 2
GAC = глобальный кэш сборок
Позвольте сломать его:
- global - применяется ко всей машине
- assembly - то, что .NET называет своими кодовыми библиотеками (DLL)
- cache - место для хранения вещей для быстрого/общего доступа.
Таким образом, GAC должен быть местом для хранения библиотек кода, чтобы они были доступны для всех приложений, запущенных на машине.
Ответ 3
Каждый компьютер, на котором языковая среда исполнения имеет машинный кеш-код, называемый глобальный сборный кеш. Глобальный сборка кеша хранит сборки специально предназначенные для совместного использования несколькими приложениями на компьютер.
Вы должны делиться сборками установки их в глобальную кеширование сборок только тогда, когда вам нужно. В качестве общего руководства держите сборку зависимых частных и найти сборки в приложении каталог, если не используется сборка явно требуется. К тому же, нет необходимости устанавливать сборки в глобальной сборке кеш, чтобы сделать их доступными для COM interop или неуправляемый код.
То, что содержит MSDN, может удивить вас... вы можете обычно читать его как статью. Прямые и самые важные биты наверху, сложные детали глубже. Это, конечно, объясняет это лучше, чем я мог.
Обратите внимание, что Visual Studio отображает все DLL файлы в GAC на вкладке .NET окна "Ссылки". (Щелкните правой кнопкой мыши по проекту в обозревателе решений и выберите Добавить ссылку.) Это должно дать вам более взвешенную идею.
Ответ 4
Централизованная библиотека DLL.
Ответ 5
Exe Application, прежде всего, ссылается из текущего каталога на подкаталог. А затем, системный каталог. Системный каталог VS6.0 был..windows/system32. Системный каталог .NET похож на приведенный ниже путь GAC.
-
Путь GAC
1) C:\Windows\Assembly (для .NET 2.0 ~ 3.5)
2) C:\Windows\Microsoft.NET\сборка (для .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. Version и PublickeyToken могут быть опущены и проверены в сборке GAC.
Ответ 6
Глобальный кэш сборок (GAC) - это папка в каталоге Windows для хранения сборников .NET, специально предназначенных для совместного использования всеми приложениями, выполняемыми в системе. Ассембли могут делиться между несколькими приложениями на машине, регистрируя их в глобальном кэше сборок (GAC). GAC - это машина, в которой используется локальный кеш сборок, поддерживаемых платформой .NET Framework.
Ответ 7
Это похоже на реестр COM, сделанный правильно, в отношении физических файлов, а также их информации о интерфейсе и местоположении. В COM файлы были повсюду, с централизованными метаданными. GAC централизует побег.
Ответ 8
GAC (глобальный кэш сборок) - это место, где находится общая сборка .NET.