Atributos de nível de assembly interpretados pelo compilador C#

A maioria dos atributos são aplicados aos elementos específicos de linguagem, como classes ou métodos. No entanto, alguns atributos são globais. Eles se aplicam a um assembly inteiro ou módulo. Por exemplo, o atributo AssemblyVersionAttribute pode ser usado para inserir informações de versão em um assembly, desta maneira:

[assembly: AssemblyVersion("1.0.0.0")]

Os atributos globais aparecem no código-fonte depois de qualquer diretiva using de nível superior e antes de qualquer declaração de namespace, de módulo ou de tipo. Os atributos globais podem aparecer em vários arquivos de origem, mas os arquivos devem ser compilados em uma única passagem de compilação. O Visual Studio adiciona atributos globais ao arquivo AssemblyInfo.cs em projetos do .NET Framework. Esses atributos não são adicionados a projetos do .NET Core.

Os atributos de assembly são valores que fornecem informações sobre um assembly. Eles se enquadram nas seguintes categorias:

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

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 a ele no código. Você pode definir a versão e a cultura de um assembly, usando atributos. No entanto, o valor do nome é definido pelo compilador, pelo Visual Studio IDE na caixa de diálogo Informações do Assembly ou pelo vinculador do assembly (Al.exe) quando o assembly é criado. O nome do assembly é baseado no manifesto do assembly. O atributo AssemblyFlagsAttribute especifica se várias cópias do assembly podem coexistir.

A tabela a seguir mostra os atributos de identidade.

Atributo Finalidade
AssemblyVersionAttribute Especifica a versão de um assembly.
AssemblyCultureAttribute Especifica a qual cultura o assembly dá suporte.
AssemblyFlagsAttribute Especifica uma combinação bit a bit dos sinalizadores para um assembly, descrevendo as opções do compilador JIT (just-in-time), se o assembly é ou não redirecionável e se ele tem uma chave pública completa ou indexada.

Atributos informativos

Você usa atributos informativos para fornecer informações adicionais da empresa ou do produto para um assembly. A tabela a seguir mostra os atributos informativos definidos no namespace System.Reflection.

Atributo Finalidade
AssemblyProductAttribute Especifica um nome de produto para um manifesto do assembly.
AssemblyTrademarkAttribute Especifica uma marca para um manifesto do assembly.
AssemblyInformationalVersionAttribute Especifica uma versão informativa para um manifesto do assembly.
AssemblyCompanyAttribute Especifica um nome de empresa para um manifesto do assembly.
AssemblyCopyrightAttribute Define um atributo personalizado que especifica os direitos autorais para um manifesto do assembly.
AssemblyFileVersionAttribute Define um número de versão específico para o recurso de versão do arquivo Win32.
CLSCompliantAttribute Indica se o assembly está em conformidade com a CLS (Common Language Specification).

Atributos de manifesto do assembly

Você pode usar atributos de manifesto do assembly para fornecer informações no manifesto do assembly. Os atributos incluem título, descrição, alias padrão e configuração. A tabela a seguir mostra os atributos de manifesto do assembly definidos no namespace System.Reflection.

Atributo Finalidade
AssemblyTitleAttribute Especifica um título de assembly para um manifesto do assembly.
AssemblyDescriptionAttribute Especifica uma descrição do assembly para um manifesto do assembly.
AssemblyConfigurationAttribute Especifica uma configuração de assembly (como varejo ou depuração) para um manifesto do assembly.
AssemblyDefaultAliasAttribute Define um alias amigável padrão para um manifesto do assembly