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


Установка атрибутов сборки в коде

Атрибуты сборки — это значения, предоставляющие сведения о сборке. Обычно они задаются в файле AssemblyInfo.cs . Атрибуты делятся на следующие наборы сведений:

  • Атрибуты удостоверения сборки
  • Информационные атрибуты
  • Атрибуты манифеста сборки
  • Атрибуты строгого имени

Эта статья направлена на добавление атрибутов сборки из кода. Сведения о добавлении атрибутов сборки в проекты (не в коде) см. в разделе "Настройка атрибутов сборки" в файле проекта.

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

Три атрибута, вместе со строгим именем (если применимо), определяют идентификацию сборки: имя, версия и региональные параметры. Эти атрибуты образуют полное имя сборки и требуются при ссылке на сборку в коде. Атрибуты можно использовать для задания версии и культуры сборки. Компилятор или компоновщик сборок (Al.exe) задает значение имени при создании сборки на основе файла, содержащего манифест сборки.

В следующей таблице описаны атрибуты версии и культурные атрибуты.

Атрибут идентификации сборки Описание
AssemblyCultureAttribute Перечисленное поле, указывающее культуру, поддерживаемую сборкой. Сборка также может указывать независимость от культуры, обозначая, что она содержит ресурсы для культуры по умолчанию. Заметка: Среда выполнения обрабатывает любую сборку, которая не имеет атрибута культуры, для которого указано значение NULL, в качестве сателлитной сборки. Такие сборки подчиняются правилам привязки спутниковых сборок. Для получения дополнительной информации см. Как среда выполнения находит сборки.
AssemblyFlagsAttribute Значение, задающее атрибуты сборки, например, можно ли выполнять сборку параллельно.
AssemblyVersionAttribute Числовое значение в формате старшая.младшая.сборка.ревизия (например, 2.4.0.0). Среда CLR использует это значение для выполнения операций привязки в сборках с строгими именами. Заметка: Если AssemblyInformationalVersionAttribute не применяется к сборке, номер версии, указанный с помощью атрибута AssemblyVersionAttribute, используется свойствами Application.ProductVersion, Application.UserAppDataPath и Application.UserAppDataRegistry.

В следующем примере кода показано, как применить атрибуты версии и культуры к сборке.

// Set version number for the assembly.
[assembly:AssemblyVersionAttribute("4.3.2.1")];
// Set culture as German.
[assembly:AssemblyCultureAttribute("de")];
// Set version number for the assembly.
[assembly:AssemblyVersionAttribute("4.3.2.1")]
// Set culture as German.
[assembly:AssemblyCultureAttribute("de")]
' Set version number for the assembly.
<Assembly:AssemblyVersionAttribute("4.3.2.1")>
' Set culture as German.
<Assembly:AssemblyCultureAttribute("de")>

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

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

Информационный атрибут Описание
AssemblyCompanyAttribute Строковое значение, указывающее имя компании.
AssemblyCopyrightAttribute Строковое значение, указывающее сведения об авторских правах.
AssemblyFileVersionAttribute Строковое значение, указывающее номер версии файла Win32. Обычно это значение по умолчанию используется для версии сборки.
AssemblyInformationalVersionAttribute Строковое значение, указывающее сведения о версии, которые не используются средой CLR, например полный номер версии продукта. Заметка: Если этот атрибут применяется к сборке, строка, которую он указывает, может быть получена во время выполнения с помощью Application.ProductVersion свойства. Строка также используется в пути и ключе реестра, предоставленных свойствами Application.UserAppDataPath и Application.UserAppDataRegistry.
AssemblyProductAttribute Строковое значение, указывающее сведения о продукте.
AssemblyTrademarkAttribute Строковое значение, указывающее сведения о товарных знаках.

Эти атрибуты могут отображаться на странице свойств Windows сборки или их можно переопределить с помощью параметра компилятора /win32res , чтобы указать файл ресурсов Win32.

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

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

Атрибут манифеста сборки Описание
AssemblyConfigurationAttribute Строковое значение, указывающее конфигурацию сборки, например розничная или отладка. Среда выполнения не использует это значение.
AssemblyDefaultAliasAttribute Строковое значение, указывающее псевдоним по умолчанию, используемый со ссылкой на сборки. Это значение предоставляет понятное имя, если имя самой сборки не является понятным (например, значение GUID). Это значение также можно использовать в качестве сокращённой формы полного имени сборки.
AssemblyDescriptionAttribute Строковое значение, указывающее краткое описание, которое суммирует характер и назначение сборки.
AssemblyTitleAttribute Строковое значение, указывающее дружественное имя для сборки. Например, сборка с именем comdlg может иметь название Microsoft Common Dialog Control.

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

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

Атрибут строгого имени Описание
AssemblyDelaySignAttribute Логическое значение, указывающее, что используется отложенное подписывание.
AssemblyKeyFileAttribute Строковое значение, указывающее имя файла, содержащего или открытый ключ (при использовании задержанной подписи), или как открытый, так и закрытый ключи, передаваемые в качестве параметра конструктору этого атрибута. Обратите внимание, что имя файла относительно пути выходного файла ( .exe или .dll), а не пути к исходному файлу.
AssemblyKeyNameAttribute Указывает контейнер ключей, содержащий пару ключей, переданную в качестве параметра конструктору этого атрибута.

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

[assembly:AssemblyKeyFileAttribute("myKey.snk")];
[assembly:AssemblyDelaySignAttribute(true)];
[assembly:AssemblyKeyFileAttribute("myKey.snk")]
[assembly:AssemblyDelaySignAttribute(true)]
<Assembly:AssemblyKeyFileAttribute("myKey.snk")>
<Assembly:AssemblyDelaySignAttribute(True)>

См. также