Установка сборки в глобальном кэше сборок в Visual Basic .NET или Visual Basic 2005

Аннотация

Описание создания строгого имени для сборки и установки файла библиотеки DLL в глобальном кэше сборок. Глобальный кэш сборок позволяет обеспечить общий доступ нескольких приложений к сборкам. Глобальный кэш сборок автоматически устанавливается со средой выполнения .NET. Его компоненты обычно хранятся в папке C:\WINNT\Assembly.

Чтобы установить сборку в глобальном кэше сборок, необходимо присвоить сборке строгое (то есть уникальное) имя. В действительности это не имя, а криптографический хэш-ключ или подпись. Строгое имя обеспечивает контроль версий компонентов и предотвращает конфликты между компонентами с одинаковыми именами и их неправильное использование приложениями.

Требования

В приведенном ниже списке перечислены рекомендованные оборудование, программное обеспечение, сетевая инфраструктура, а также необходимые знания, навыки и пакеты обновления.
  • Права администратора на компьютере, на котором устанавливается сборка общего доступа.
Необходимые знания:
  • знакомство со сборками в .NET;
  • знакомство с использованием средств командной строки.

Глобальный кэш сборок

Для того чтобы создать небольшой проект класса библиотек в Visual Studio .NET или Visual Studio 2005, создать строгое имя и установить DLL проекта в глобальный кэш сборок, выполните описанные ниже действия.
  1. Запустите Visual Studio 2005 или Visual Studio .NET.
  2. Создайте новый проект класса библиотек с именем GAC в Visual Basic .NET или Visual Basic 2005.
  3. Необходимо строгое имя. Для создания пары криптографических ключей используйте средство SN Tool, расположенное в подкаталоге \bin папки, в которую установлен набор разработчика .NET Framework Solution Developer Kit (SDK). Пользоваться средством SN Tool очень просто. Выражение командной строки имеет следующий вид:
    sn -k "C:\[DirectoryToPlaceKey]\[KeyName].snk"
  4. Для удобства работы создайте директорию GACDemo на диске C:\ — это облегчит поиск ключа и доступ к нему из командной строки.

    ПРИМЕЧАНИЕ. У большинства пользователей средства .NET расположены в папке C:\Program Files\Microsoft.NET\FrameworkSDK\Bin. Прежде чем ввести приведенную ниже команду SN, следует перейти в каталог bin .NET. Скопируйте путь к каталогу bin .NET, в командной строке введите команду cd, щелкните правой кнопкой мыши, чтобы вставить путь, и нажмите клавишу ВВОД, чтобы быстро перейти в каталог, в котором находится средство SN Tool.

    Введите следующую команду:
    sn -k "C:\GACDemo\GACkey.snk"
    Примечание. В .NET Framework 2.0 средства .NET расположены в папке C:\Program Files\Microsoft.NET\SDK\v2.0\Bin.
  5. Ключ создан, но еще не связан со сборкой проекта. Чтобы установить связь, дважды щелкните файл AssemblyInfo.vb в окне Visual Studio .NET или Visual Studio 2005 Solution Explorer. Добавьте следующую строку в список атрибутов сборки, включаемый в этот файл по умолчанию при создании проекта в Visual Studio .NET или Visual Studio 2005:
    <Assembly: AssemblyKeyFile("C:\GACDemo\GACKey.snk")>
    Скомпилируйте проект, нажав клавиши CTRL+SHIFT+B. Для установки DLL-файла в глобальный кэш сборок дополнительного кода не требуется.
  6. DLL-файл можно установить с помощью средства Gacutil Tool или перенести его в соответствующий каталог. При использовании средства Gacutil Tool введите следующую команду:
    gacutil -I "C:\[PathToBinDirectoryInVSProject]\gac.dll"
    Для переноса файла воспользуйтесь проводником. Откройте два окна проводника. В первом перейдите к папке, в которой расположен DLL-файл консольного проекта. В другом окне перейдите в папку c:\[SystemRoot]\Assembly.

    Перенесите DLL-файл в эту папку.

Полный листинг кода (AssemblyInfo.vb)

Imports System.Reflection
Imports System.Runtime.InteropServices

<Assembly: AssemblyTitle("")>
<Assembly: AssemblyDescription("")>
<Assembly: AssemblyCompany("")>
<Assembly: AssemblyProduct("")>
<Assembly: AssemblyCopyright("")>
<Assembly: AssemblyTrademark("")>
<Assembly: CLSCompliant(True)>
<Assembly: AssemblyKeyFile("C:\GACDemo\GACKey.snk")>

<Assembly: Guid("E3492A62-5389-4286-94A3-1331CC29EA6D")>
<Assembly: AssemblyVersion("1.0.*")>

Проверка

  1. Запустите проводник.
  2. Перейдите в папку C:\WINNT\assembly.
  3. Найдите глобальный кэш сборок в списке установленных DLL-файлов.

Ссылки

Дополнительные сведения см. на перечисленных ниже веб-сайтах корпорации Майкрософт.
Установка сборки в глобальный кэш сборок
http://msdn.microsoft.com/ru-ru/library/dkkx7f79(vs.71).aspx
Глобальный кэш сборок
http://msdn.microsoft.com/ru-ru/library/yf1d93sz(vs.71).aspx

Средство глобального кэша сборокhttp://msdn.microsoft.com/ru-ru/library/ex0ss12c(vs.71).aspx
Свойства

Номер статьи: 315682 — последний просмотр: 14 мая 2011 г. — редакция: 1

Отзывы и предложения