Compartilhar via


Atributos globais no Visual Basic

A maioria dos atributos estão conectados aos elementos de idioma específico, como classes ou métodos.No entanto, alguns atributos são globais — eles podem ser aplicados a um conjunto inteiro ou módulo.

Você pode definir muitos dos atributos no Visual Studioambiente de desenvolvimento integrado (IDE - Integrated Development Environment) por meio de Caixa de diálogo Assembly Information.Para obter mais informações, consulte Gerenciando propriedades Application e Gerenciando Assinatura de Assembly e Manifesto.

Atributos do Conjunto de Módulos (Assembly)

Você especifica atributos a nível de conjunto de módulos usando a seguinte sintaxe:

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

Você especificaa atributos em nível de módulo usando uma sintaxe semelhante:

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

Você adiciona atributos globais no código-fonte após quaisquer diretivas de nível superior, como instruções Option Explicit e Imports , mas antes de quaisquer declarações de namespace ou tipo.Atributos globais podem aparecem em vários arquivos fonte em um projeto, mas eles geralmente são colocados no arquivo AssemblyInfo.vb criado automaticamente com projetos Visual Basic.

Atributos de Conjunto de Módulos (Assembly) são valores que fornecem informações sobre um conjunto.Elas se enquadram nas categorias a seguir:

  • Atributos de identidade de Conjunto de Módulos (Assembly)

  • Atributos informativos

  • Atributos do manifesto do assembly

  • Atributos de nome de alta segurança

Atributos de identidade de Assembly

Três atributos (com um nome forte, se aplicável) determinar a identidade de um assembly: nome, versão e cultura.Esses atributos formam o nome completo do conjunto de módulos (assembly) e são necessários quando você referencia a ele em código.Você pode definir uma versão e cultura de um conjunto de módulos (assembly) usando atributos.No entanto, o valor do nome é definido pelo compilador, a IDE do Visual Studio na Caixa de diálogo Assembly Information, ou o Assembly Linker (AL.exe) quando o conjunto é criado, com base no arquivo que contém o manifesto do assembly.O atributo AssemblyFlagsAttribute especifica se várias cópias do conjunto podem coexistir.

A tabela a seguir mostra os atributos de identidade.

Atributo

Objetivo

AssemblyName

Descreve totalmente a identidade de um conjunto de módulos (assembly).

AssemblyVersionAttribute

Especifica a versão de um conjunto de módulos (assembly).

AssemblyCultureAttribute

Especifica a qual cultura o conjunto de módulos (assembly) oferece suporte.

AssemblyFlagsAttribute

Especifica se um conjunto de módulos (assembly) oferece suporte à execução lado a lado no mesmo computador, no mesmo processo, ou no mesmo domínio do aplicativo.

O código a seguir aplica os atributos de versão e de cultura a um conjunto de módulos (assembly):

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

Atributos Informativos

Você pode usar atributos informativos para fornecer informações adicionais sobre empresas ou produtos para um conjunto de módulos (assembly).A tabela a seguir mostra os atributos informativos definidos no namespace System.Reflection.

Atributo

Objetivo

AssemblyProductAttribute

Define um atributo personalizado que especifica um nome de produto para um manifesto do assembly.

AssemblyTrademarkAttribute

Define um atributo personalizado que especifica uma marca comercial para um manifesto do assembly.

AssemblyInformationalVersionAttribute

Define um atributo personalizado que especifica uma versão informacional para um manifesto do assembly.

AssemblyCompanyAttribute

Define um atributo personalizado que especifica um nome de empresa para um manifesto do assembly.

AssemblyCopyrightAttribute

Define um atributo personalizado que especifica um copyright para um manifesto do assembly.

AssemblyFileVersionAttribute

Instrui o compilador a usar um número de versão específico para o recurso de versão de arquivo Win32.

CLSCompliantAttribute

Indica se o assembly é compatível com a CLS (Common Language Specification) (CLS).

Atributos do manifesto do assembly

Você pode usar atributos do manifesto do assembly para fornecer informações no manifesto do assembly.Isso inclui Título, Descrição, alias padrão e a configuração.A tabela a seguir mostra os atributos do manifesto do assembly definidos no namespace System.Reflection.

Atributo

Objetivo

AssemblyTitleAttribute

Define um atributo personalizado que especifica um título de assembly para um manifesto do assembly.

AssemblyDescriptionAttribute

Define um atributo personalizado que especifica uma descrição de assembly para um manifesto do assembly.

AssemblyConfigurationAttribute

Define um atributo personalizado que especifica uma configuração de conjunto de módulos (assembly) (como varejo ou depuração) para um manifesto do assembly.

AssemblyDefaultAliasAttribute

Define um alias amigável padrão para um manifesto do assembly

Atributos de nome de alta segurança

Nomes de alta segurança são identificadores únicos que protegem a identidade e integridade de um conjunto de módulos (assembly).Você pode assinar um conjunto de módulos (assembly) da IDE do Visual Studiopor meio de Assinatura de Página, o criador do projeto.Para obter mais informações, consulte Gerenciando Assinatura de Assembly e Manifesto.

Como alternativa, você pode usar atributos de nome de alta segurança para definir um nome forte para um conjunto de módulos (assembly).A tabela a seguir mostra os atributos de nome de alta segurança definidos no namespace System.Reflection.

Atributo

Objetivo

AssemblyDelaySignAttribute

Booleano que indica se você deseja reservar espaço no arquivo executável para a assinatura de nome forte, mas adiar a assinatura real até alguns estágios posteriores.Para obter mais informações, consulte Atraso na Assinatura de um Assembly.

AssemblyKeyFileAttribute

Indica o arquivo que contém uma chave.O local do KeyFile deve ser relativo ao diretório de saída do projeto, que é %Project Directory%\obj\<configuration>.Por exemplo, se seu KeyFile estiver localizado no diretório do projeto, você deve especificar o atributo AssemblyKeyFile como

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

AssemblyKeyNameAttribute

Refere-se a uma chave que foi instalada no provedor de serviço de criptografia (CSP - Crypto Service Provider) no seu computador.Você deve especificar uma chave na ordem para o arquivo a ser assinado.

Se o KeyFile e os valores de KeyName forem ambos especificados, o processamento seguinte ocorre:

  • Se o KeyName pode ser encontrado no provedor de serviços de criptografia, essa chave é usada.

  • Se o keyName não existe e e o KeyFile existe, a chave de KeyFile é instalada no provedor de serviços de criptografia e usada.

  • Para obter mais informações, consulte Considerações Sobre Segurança do Assembly.

Assinando conjuntos de módulos (assemblies)

Você pode assinar um assembly de duas maneiras diferentes mas complementares: com um nome forte ou com a assinatura.Você pdoe assinar usando a opção Assinatura de Página, o criador do projeto da IDE Visual Studio ou usando o Arquivo Autenticando ferramenta (Signcode.exe).Quando você assina um assembly com um nome forte, ele adiciona uma criptografia de chave pública ao arquivo que contém o manifesto do assembly.Assinatura de nome forte ajuda a verificar exclusividade de nome, a evitar falsificação de nome, e fornece chamadores com alguma identidade quando uma referência é resolvida.Para obter mais informações, consulte Gerenciando Assinatura de Assembly e Manifesto e Como: Assinar um assembly com um nome forte.

Assinar um assembly com um nome de alta segurança

  1. Use o Ferramenta Strong Name (Sn.exe) para gerar um arquivo de chave que contém um par de chaves.

  2. Adicione atributos de nome forte ao arquivo AssemblyInfo.vb criado automaticamente com os projetos do Visual Basic.Para editar esse arquivo, clique duas vezes no nome de arquivo na caixa Gerenciador de Soluções .

    O exemplo a seguir usa atraso de assinatura para criar um conjunto de módulos (assembly) de nome de alta segurança com um arquivo de chave pública que é chamado de myKey.snk.

    <Assembly: Reflection.AssemblyKeyFile("myKey.snk")> 
    <Assembly: Reflection.AssemblyDelaySign(True)> 
    
    Observação:

    Os atributos em nível de assembly são ignorados se você não blogg e um assembly, sistema autônomo Quando você compilar a partir da linha de comando Por usando o /target:module opção.

Consulte também

Tarefas

Como: Definir seus próprios atributos

Como: Assinar um assembly com um nome forte

Conceitos

Aplicação de Atributos

Considerações Sobre Segurança do Assembly

Referência

Ferramenta Strong Name (Sn.exe)

Arquivo Autenticando ferramenta (Signcode.exe)

Assinatura de Página, o criador do projeto

Caixa de diálogo Assembly Information

Outros recursos

Atributos personalizados no Visual Basic

Gerenciando propriedades Application

Gerenciando Assinatura de Assembly e Manifesto