Поделиться через


Глобальные атрибуты в Visual Basic

Обновлен: Ноябрь 2007

Большинство атрибутов присоединяется к определенным элементам языка, таким как классы и методы. Однако некоторые атрибуты являются глобальными — они могут применяться ко всей сборке или к модулю.

В интегрированной среде разработки (IDE) Visual Studio можно задать многие атрибуты с помощью Диалоговое окно "Сведения о сборке". Дополнительные сведения см. в разделах Управление свойствами приложения и Управление сборками и подписывание манифестов.

Атрибуты сборок

Атрибуты уровня сборки определяются с помощью следующего синтаксиса:

<Assembly: Attribute1, Assembly: Attribute2..., Assembly: AttributeN>

Атрибуты уровня модуля определяются с помощью аналогичного синтаксиса:

<Module: Attribute1, Module: Attribute2..., Module: AttributeN>

Добавьте глобальные атрибуты в исходном коде после любой директивы верхнего уровня (например Option Explicit и Imports), но перед любыми объявлениями типов или пространств имен. Глобальные атрибуты могут появляться во многих исходных файлах проекта, но, как правило, они размещаются в файле AssemblyInfo.vb, который автоматически создается в проектах Visual Basic.

Атрибуты сборок — это значения, которые содержат информацию о сборке. Эти атрибуты можно разделить на следующие категории:

  • Атрибуты удостоверения сборки.

  • Информационные атрибуты.

  • Атрибуты манифеста сборки.

  • Атрибуты строгого имени.

Атрибуты удостоверения сборки.

Удостоверение сборки определяют три атрибута (по возможности имеющие строгие имена), а именно: имя, версия, язык и региональные параметры. Эти атрибуты формируют полное имя сборки и являются обязательными при ссылке на сборку в коде. Версию, язык и региональные параметры сборки можно задать с помощью атрибутов. Однако значение имени задается компилятором Visual Studio IDE в Диалоговое окно "Сведения о сборке", или компоновщиком сборки (Al.exe) во время создания сборки на основе файла, содержащегося в манифесте сборки. Атрибут AssemblyFlagsAttribute определяет возможность совместного существования нескольких копий сборки.

В приведенной ниже таблице содержатся атрибуты удостоверения.

Атрибут

Назначение

AssemblyName

Полностью описывает удостоверение сборки.

AssemblyVersionAttribute

Указывает версию сборки.

AssemblyCultureAttribute

Определяет, какие язык и региональные параметры поддерживает сборка.

AssemblyFlagsAttribute

Определяет, поддерживает ли сборка одновременное выполнение на том же компьютере, в том же процессе или в том же домене приложения.

В следующем коде сборке присваиваются атрибуты версии и языка и региональных параметров:

'Set version number for assembly.
<Assembly: Reflection.AssemblyVersionAttribute("4.3.2.1")> 
'Set culture as German.
<Assembly: Reflection.AssemblyCultureAttribute("de")> 

Информационные атрибуты.

Информационные атрибуты могут использоваться для присвоения сборке дополнительной информации о компании или продукте. В следующей таблице представлены информационные атрибуты, определенные в пространстве имен System.Reflection.

Атрибут

Назначение

AssemblyProductAttribute

Определяет пользовательский атрибут имени продукта для манифеста сборки.

AssemblyTrademarkAttribute

Определяет пользовательский атрибут товарного знака для манифеста сборки.

AssemblyInformationalVersionAttribute

Определяет пользовательский атрибут версии для манифеста сборки.

AssemblyCompanyAttribute

Определяет пользовательский атрибут имени компании для манифеста сборки.

AssemblyCopyrightAttribute

Определяет пользовательский атрибут авторских прав для манифеста сборки.

AssemblyFileVersionAttribute

Указывает, что компилятор должен использовать определенный номер версии для ресурса версии файла Win32.

CLSCompliantAttribute

Указывает, является ли сборка совместимой со спецификацией CLS.

Атрибуты манифеста сборки.

Атрибуты манифеста сборки можно использовать для предоставления сведений в манифесте сборки. К ним относятся заголовок, описание, псевдоним по умолчанию и конфигурация. В следующей таблице представлены атрибуты манифеста, определенные в пространстве имен System.Reflection.

Атрибут

Назначение

AssemblyTitleAttribute

Определяет пользовательский атрибут названия сборки для манифеста сборки.

AssemblyDescriptionAttribute

Определяет пользовательский атрибут описания сборки для манифеста сборки.

AssemblyConfigurationAttribute

Определяет пользовательский атрибут, который описывает конфигурацию сборки (например коммерческой или отладочной сборки) для манифеста сборки.

AssemblyDefaultAliasAttribute

Определяет понятный псевдоним по умолчанию для манифеста сборки.

Атрибуты строгого имени.

Атрибуты строгого имени являются уникальными идентификаторами, которые защищают удостоверение и целостность сборки. В Visual Studio IDE можно подписать сборку с помощью Страница "Подписывание" в конструкторе проектов. Дополнительные сведения см. в разделе Управление сборками и подписывание манифестов.

Также атрибуты строгого имени могут использоваться для присваивания сборке строгого имени. В следующей таблице показаны атрибуты строгого имени, определенные в пространстве имен System.Reflection.

Атрибут

Назначение

AssemblyDelaySignAttribute

Логическое значение, которое определяет, следует ли зарезервировать пространство в исполняемом файле для подписи строгого имени, но откладывает саму подпись на более поздний этап. Дополнительные сведения см. в разделе Отложенная подпись сборки.

AssemblyKeyFileAttribute

Указывает файл, содержащий ключ. Местоположение файла "KeyFile" должно определяться относительно выходного файла проекта, который находится по адресу %Каталог проекта%\obj\<конфигурация>. Например, если файл "KeyFile" расположен в каталоге проекта, атрибут "AssemblyKeyFile" следует определить как

[assembly: AssemblyKeyFile("..\\..\\mykey.snk")]

AssemblyKeyNameAttribute

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

Если определены оба значения "KeyFile" и "KeyName", выполняется следующий процесс.

  • Если "KeyName" может быть найден в CSP, используется этот ключ.

  • Если "KeyName" не существует, а "KeyFile" существует, ключ из "KeyFile" устанавливается в CSP и используется.

  • Дополнительные сведения см. в разделе Вопросы безопасности сборок.

Подпись сборок

Можно подписать сборку двумя разными, но взаимодополняющими способами: со строгим именем или с подписью. Подпись можно выполнить с помощью Visual Studio IDE Страница "Подписывание" в конструкторе проектов или Средство подписи файлов (Signcode.exe). При подписи сборки строгим именем в файл, содержащий манифест сборки, добавляется шифрование открытым ключом. Подпись строгим именем гарантирует уникальность имени, предотвращает искажение имени и после разрешения ссылки обеспечивает различение вызывающих процедур. Дополнительные сведения см. в разделах Управление сборками и подписывание манифестов и Практическое руководство. Подписание сборки строгим именем.

Подпись сборки строгим именем

  1. Используйте Средство строгих имен (Sn.exe) для создания файла, содержащего пару ключей.

  2. Добавьте атрибут строгого имени в файл AssemblyInfo.vb, который автоматически создается для проектов Visual Basic. Чтобы изменить этот файл, дважды щелкните имя файла в окне обозревателя решений.

    В следующем примере используется подпись с задержкой для создания сборки со строгим именем с вызовом файла открытого ключа, который называется myKey.snk.

    <Assembly: Reflection.AssemblyKeyFile("myKey.snk")> 
    <Assembly: Reflection.AssemblyDelaySign(True)> 
    
    bd9y0c9k.alert_note(ru-ru,VS.90).gifПримечание.

    Атрибуты уровня сборки игнорируются, если сборка не создается, например при компиляции из командной строки с помощью параметра /target:module.

См. также

Задачи

Практическое руководство. Определение пользовательских атрибутов

Практическое руководство. Подписание сборки строгим именем

Основные понятия

Применение атрибутов

Вопросы безопасности сборок

Ссылки

Средство строгих имен (Sn.exe)

Средство подписи файлов (Signcode.exe)

Страница "Подписывание" в конструкторе проектов

Диалоговое окно "Сведения о сборке"

Другие ресурсы

Пользовательские атрибуты в Visual Basic

Управление свойствами приложения

Управление сборками и подписывание манифестов