Глобальные атрибуты в 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 определяет возможность совместного существования нескольких копий сборки.
В приведенной ниже таблице содержатся атрибуты удостоверения.
Атрибут |
Назначение |
---|---|
Полностью описывает удостоверение сборки. |
|
Указывает версию сборки. |
|
Определяет, какие язык и региональные параметры поддерживает сборка. |
|
Определяет, поддерживает ли сборка одновременное выполнение на том же компьютере, в том же процессе или в том же домене приложения. |
В следующем коде сборке присваиваются атрибуты версии и языка и региональных параметров:
'Set version number for assembly.
<Assembly: Reflection.AssemblyVersionAttribute("4.3.2.1")>
'Set culture as German.
<Assembly: Reflection.AssemblyCultureAttribute("de")>
Информационные атрибуты.
Информационные атрибуты могут использоваться для присвоения сборке дополнительной информации о компании или продукте. В следующей таблице представлены информационные атрибуты, определенные в пространстве имен System.Reflection.
Атрибут |
Назначение |
---|---|
Определяет пользовательский атрибут имени продукта для манифеста сборки. |
|
Определяет пользовательский атрибут товарного знака для манифеста сборки. |
|
Определяет пользовательский атрибут версии для манифеста сборки. |
|
Определяет пользовательский атрибут имени компании для манифеста сборки. |
|
Определяет пользовательский атрибут авторских прав для манифеста сборки. |
|
Указывает, что компилятор должен использовать определенный номер версии для ресурса версии файла Win32. |
|
Указывает, является ли сборка совместимой со спецификацией CLS. |
Атрибуты манифеста сборки.
Атрибуты манифеста сборки можно использовать для предоставления сведений в манифесте сборки. К ним относятся заголовок, описание, псевдоним по умолчанию и конфигурация. В следующей таблице представлены атрибуты манифеста, определенные в пространстве имен System.Reflection.
Атрибут |
Назначение |
---|---|
Определяет пользовательский атрибут названия сборки для манифеста сборки. |
|
Определяет пользовательский атрибут описания сборки для манифеста сборки. |
|
Определяет пользовательский атрибут, который описывает конфигурацию сборки (например коммерческой или отладочной сборки) для манифеста сборки. |
|
Определяет понятный псевдоним по умолчанию для манифеста сборки. |
Атрибуты строгого имени.
Атрибуты строгого имени являются уникальными идентификаторами, которые защищают удостоверение и целостность сборки. В Visual Studio IDE можно подписать сборку с помощью Страница "Подписывание" в конструкторе проектов. Дополнительные сведения см. в разделе Управление сборками и подписывание манифестов.
Также атрибуты строгого имени могут использоваться для присваивания сборке строгого имени. В следующей таблице показаны атрибуты строгого имени, определенные в пространстве имен System.Reflection.
Атрибут |
Назначение |
---|---|
Логическое значение, которое определяет, следует ли зарезервировать пространство в исполняемом файле для подписи строгого имени, но откладывает саму подпись на более поздний этап. Дополнительные сведения см. в разделе Отложенная подпись сборки. |
|
Указывает файл, содержащий ключ. Местоположение файла "KeyFile" должно определяться относительно выходного файла проекта, который находится по адресу %Каталог проекта%\obj\<конфигурация>. Например, если файл "KeyFile" расположен в каталоге проекта, атрибут "AssemblyKeyFile" следует определить как [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] |
|
Ссылается на ключ, установленный в поставщик служб шифрования (CSP) на данном компьютере. Чтобы подписать файл, необходимо определить этот ключ. |
Если определены оба значения "KeyFile" и "KeyName", выполняется следующий процесс.
Если "KeyName" может быть найден в CSP, используется этот ключ.
Если "KeyName" не существует, а "KeyFile" существует, ключ из "KeyFile" устанавливается в CSP и используется.
Дополнительные сведения см. в разделе Вопросы безопасности сборок.
Подпись сборок
Можно подписать сборку двумя разными, но взаимодополняющими способами: со строгим именем или с подписью. Подпись можно выполнить с помощью Visual Studio IDE Страница "Подписывание" в конструкторе проектов или Средство подписи файлов (Signcode.exe). При подписи сборки строгим именем в файл, содержащий манифест сборки, добавляется шифрование открытым ключом. Подпись строгим именем гарантирует уникальность имени, предотвращает искажение имени и после разрешения ссылки обеспечивает различение вызывающих процедур. Дополнительные сведения см. в разделах Управление сборками и подписывание манифестов и Практическое руководство. Подписание сборки строгим именем.
Подпись сборки строгим именем
Используйте Средство строгих имен (Sn.exe) для создания файла, содержащего пару ключей.
Добавьте атрибут строгого имени в файл AssemblyInfo.vb, который автоматически создается для проектов Visual Basic. Чтобы изменить этот файл, дважды щелкните имя файла в окне обозревателя решений.
В следующем примере используется подпись с задержкой для создания сборки со строгим именем с вызовом файла открытого ключа, который называется myKey.snk.
<Assembly: Reflection.AssemblyKeyFile("myKey.snk")> <Assembly: Reflection.AssemblyDelaySign(True)>
Примечание.
Атрибуты уровня сборки игнорируются, если сборка не создается, например при компиляции из командной строки с помощью параметра /target:module.
См. также
Задачи
Практическое руководство. Определение пользовательских атрибутов
Практическое руководство. Подписание сборки строгим именем
Основные понятия
Ссылки
Средство строгих имен (Sn.exe)
Средство подписи файлов (Signcode.exe)
Страница "Подписывание" в конструкторе проектов
Диалоговое окно "Сведения о сборке"
Другие ресурсы
Пользовательские атрибуты в Visual Basic