Ответы:
Правильно, поэтому в основном это способ сохранить глобальную доступность DLL, не беспокоясь о конфликтах. Нет больше DLL Ад. Каждая архитектура и версия получают свое собственное место для жизни.
Он также получает свой собственный способ просмотра в Проводнике, так что если вы перейдете к
C: \ Windows \ сборки
В проводнике Windows перечислены все библиотеки DLL.
Но если вы запустите cmd
, вы можете увидеть, как это действительно структурировано:
C: \ Users \ tritter> cd C: \ Windows \ сборка C: \ Windows \ Assembly> реж Каталог C: \ Windows \ сборки 20.07.2009 14:18 <DIR> GAC 17.06.2009 16:22 <DIR> GAC_32 17.06.2009 16:22 <DIR> GAC_64 17.06.2009 16:22 <DIR> GAC_MSIL ... чик ... 0 файл (ов) 0 байт 9 Dir (s) 90,538,311,680 байт бесплатно C: \ Windows \ сборка> cd GAC_64 C: \ Windows \ сборка \ GAC_64> реж Каталог C: \ Windows \ Assembly \ GAC_64 17.06.2009 16:22 <DIR>. 17.06.2009 16:22 <DIR> .. 19.01.2008 09:54 <DIR> blbproxy ... чик ... 19.01.2008 09:54 <DIR> srmlib 19.01.2008 06:11 <DIR> System.Data 19.01.2008 06:11 <DIR> System.Data.OracleClient ... чик ... 0 файл (ов) 0 байт 34 Dir (s) 90,538,311,680 байт свободно C: \ Windows \ assembly \ GAC_64> cd System.Data C: \ Windows \ сборка \ GAC_64 \ System.Data> реж Каталог C: \ Windows \ Assembly \ GAC_64 \ System.Data 19.01.2008 06:11 <DIR>. 19.01.2008 06:11 <DIR> .. 11.04.2009 12:20 <DIR> 2.0.0.0__b77a5c561934e089 0 файл (ов) 0 байт 3 Dir (s) 90,538,311,680 байт бесплатно C: \ Windows \ assembly \ GAC_64 \ System.Data> cd 2.0.0.0__b77a5c561934e089 C: \ Windows \ сборка \ GAC_64 \ System.Data \ 2.0.0.0__b77a5c561934e089> реж Каталог C: \ Windows \ Assembly \ GAC_64 \ System.Data \ 2.0.0.0__b77a5c561934e089 11.04.2009 12:20 <DIR>. 11.04.2009 12:20 <DIR> .. 11.04.2009 12:12 3 008 512 System.Data.dll 1 файл (ов) 3 008 512 байт 2 Dir (s) 90,538,311,680 байт свободно C: \ Windows \ сборка \ GAC_64 \ System.Data \ 2.0.0.0__b77a5c561934e089>
Здесь вы можете увидеть версию 2.0.0.0__b77a5c561934e089 из System.Data.
DLL идентифицируется по 5 частям:
Хотя первые 3, как правило, большие.
Давайте разберемся с этим:
Таким образом, GAC должен быть местом для хранения библиотек кода, чтобы они были доступны для всех приложений, работающих на компьютере.
Каждый компьютер, на котором установлена среда с общим языком, имеет машинный кэш кода, называемый глобальным кэшем сборок. В глобальном кэше сборок хранятся сборки, специально предназначенные для совместного использования несколькими приложениями на компьютере.
Вы должны делиться сборками, устанавливая их в глобальный кеш сборок, только когда это необходимо. Как общее руководство, держите зависимости сборок в секрете и размещайте сборки в каталоге приложения, если явно не требуется совместное использование сборки. Кроме того, нет необходимости устанавливать сборки в глобальный кэш сборок, чтобы сделать их доступными для взаимодействия COM или неуправляемого кода.
Вещи, которые содержит MSDN, могут вас удивить ... обычно вы можете прочитать это как статью. Простые и самые важные элементы в верхней части, сложные детали глубже. Это, конечно, объясняет это лучше, чем я мог.
Обратите внимание, что Visual Studio отображает все библиотеки DLL в GAC на вкладке .NET окна « Ссылки» . (Щелкните правой кнопкой мыши проект в обозревателе решений и выберите Добавить ссылку.) Это должно дать вам более гибкую идею.
Глобальный кэш сборок (GAC) - это папка в каталоге Windows, в которой хранятся сборки .NET, которые специально предназначены для совместного использования всеми приложениями, выполняемыми в системе. Сборки могут использоваться несколькими приложениями на машине путем регистрации их в глобальном кэше сборок (GAC). GAC - это машинный локальный кеш сборок, поддерживаемый .NET Framework.
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 (от имени администратора)
gacutil -u [Assembly Name], Version=1.0.0.0, PublickeyToken=7896a3567gh