Definir atributos do assembly no código

Os atributos de assembly são valores que fornecem informações sobre um assembly. Geralmente, eles são definidos em um arquivo AssemblyInfo.cs. Os atributos são divididos nos seguintes conjuntos de informações:

  • Atributos de identidade do assembly
  • Atributos informativos
  • Atributos de manifesto do assembly
  • Atributos de nome forte

Este artigo abrange a adição de atributos de assembly do código. Para obter informações sobre como adicionar atributos do assembly a projetos (não no código), consulte Definir atributos do assembly em um arquivo de projeto.

Atributos de identidade do assembly

Três atributos, com um nome forte (se aplicável), determinam a identidade de um assembly: nome, versão e cultura. Esses atributos formam o nome completo do assembly e são necessários ao fazer referência ao assembly no código. Você pode usar atributos para definir a versão e a cultura de um assembly. O compilador ou o Assembly Linker (Al.exe) define o valor do nome quando o assembly é criado, com base no arquivo que contém o manifesto do assembly.

A tabela a seguir descreve os atributos de versão e cultura.

Atributo de identidade do assembly Descrição
AssemblyCultureAttribute Campo enumerado que indica a cultura compatível com o assembly. Um assembly também pode especificar a independência da cultura, indicando que ela contém os recursos para a cultura padrão. Observação: o runtime trata qualquer assembly que não tenha o atributo de cultura definido como nulo, como um assembly satélite. Esses assemblies estão sujeitos às regras de associação de assembly satélite. Para saber mais, confira Como o runtime localiza assemblies.
AssemblyFlagsAttribute O valor que define os atributos de assembly; por exemplo, se o assembly pode ser executado lado a lado.
AssemblyVersionAttribute Valor numérico no formato principal.secundário.compilação.revisão (por exemplo, 2.4.0.0). O Common Language Runtime usa esse valor para executar operações de associação em assemblies com nome forte. Observação: se o atributo AssemblyInformationalVersionAttribute não for aplicado a um assembly, o número de versão especificado pelo atributo AssemblyVersionAttribute será usado pelas propriedades Application.ProductVersion, Application.UserAppDataPath e Application.UserAppDataRegistry.

O exemplo de código a seguir mostra como aplicar os atributos de versão e cultura a um assembly.

// 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")>

Atributos informativos

Você pode usar atributos informativos para fornecer informações adicionais corporativas ou de produto para um assembly. A tabela a seguir descreve os atributos informativos que você pode aplicar a um assembly.

Atributos informativos Descrição
AssemblyCompanyAttribute O valor de cadeia de caracteres que especifica um nome de empresa.
AssemblyCopyrightAttribute O valor de cadeia de caracteres que especifica informações sobre direitos autorais.
AssemblyFileVersionAttribute O valor de cadeia de caracteres que especifica o número de versão do arquivo Win32. Isso normalmente tem como padrão a versão do assembly.
AssemblyInformationalVersionAttribute O valor de cadeia de caracteres que especifica informações de versão que não são usadas pelo Common Language Runtime, como o número de versão completo de um produto. Observação: se esse atributo for aplicado a um assembly, a cadeia de caracteres que ele especifica poderá ser obtida em tempo de execução usando a propriedade Application.ProductVersion. A cadeia de caracteres também é usada na chave do Registro e no caminho fornecidos pelas propriedades Application.UserAppDataPath e Application.UserAppDataRegistry.
AssemblyProductAttribute O valor de cadeia de caracteres que especifica informações do produto.
AssemblyTrademarkAttribute O valor de cadeia de caracteres que especifica informações de marca registrada.

Esses atributos podem aparecer na página Propriedades do Windows do assembly ou podem ser substituídos usando a opção de compilador /win32res para especificar seu arquivo de recurso Win32.

Atributos de manifesto do assembly

Também é possível usar atributos de manifesto do assembly para fornecer informações no manifesto do assembly, incluindo título, descrição, o alias padrão e a configuração. A tabela a seguir descreve os atributos de manifesto do assembly.

Atributo de manifesto do assembly Descrição
AssemblyConfigurationAttribute O valor de cadeia de caracteres que indica a configuração do assembly, como Retail ou Depuração. O runtime não usa esse valor.
AssemblyDefaultAliasAttribute O valor de cadeia de caracteres que especifica um alias padrão a ser usado ao fazer referências de assemblies. Esse valor fornece um nome amigável quando o nome do assembly em si não o for (como um valor GUID). Esse valor também pode ser usado como uma forma abreviada do nome completo do assembly.
AssemblyDescriptionAttribute O valor de cadeia de caracteres que especifica uma breve descrição que resume a natureza e o objetivo do assembly.
AssemblyTitleAttribute O valor de cadeia de caracteres que especifica um nome amigável para o assembly. Por exemplo, um assembly nomeado como comdlg pode ter o título Controle de Diálogo Comum da Microsoft.

Atributos de nome forte

Você pode usar atributos de nome forte para definir um nome forte para um assembly. A tabela a seguir descreve os atributos de nome forte.

Atributo de nome forte Descrição
AssemblyDelaySignAttribute O valor booliano que indica que a assinatura em atraso está sendo usada.
AssemblyKeyFileAttribute O valor de cadeia de caracteres que indica o nome do arquivo que contém a chave pública (se usando assinatura em atraso) ou as chaves pública e privada passadas como um parâmetro ao construtor desse atributo. Observe que o nome de arquivo é relativo ao caminho do arquivo de saída (o .exe or .dll), e não ao caminho do arquivo de origem.
AssemblyKeyNameAttribute Indica o contêiner de chaves que contém o par de chaves passado como um parâmetro ao construtor desse atributo.

O exemplo de código a seguir mostra os atributos que se aplicam ao usar a assinatura em atraso para criar um assembly de nome forte com um arquivo de chave pública chamado myKey.snk.

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

Confira também