Compartilhar via


AssemblyVersionAttribute Classe

Definição

Especifica a versão do assembly sendo atribuído.

public ref class AssemblyVersionAttribute sealed : Attribute
[System.AttributeUsage(System.AttributeTargets.Assembly, Inherited=false)]
public sealed class AssemblyVersionAttribute : Attribute
[System.AttributeUsage(System.AttributeTargets.Assembly, AllowMultiple=false)]
public sealed class AssemblyVersionAttribute : Attribute
[System.AttributeUsage(System.AttributeTargets.Assembly, Inherited=false)]
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class AssemblyVersionAttribute : Attribute
[<System.AttributeUsage(System.AttributeTargets.Assembly, Inherited=false)>]
type AssemblyVersionAttribute = class
    inherit Attribute
[<System.AttributeUsage(System.AttributeTargets.Assembly, AllowMultiple=false)>]
type AssemblyVersionAttribute = class
    inherit Attribute
[<System.AttributeUsage(System.AttributeTargets.Assembly, Inherited=false)>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type AssemblyVersionAttribute = class
    inherit Attribute
Public NotInheritable Class AssemblyVersionAttribute
Inherits Attribute
Herança
AssemblyVersionAttribute
Atributos

Exemplos

O exemplo a seguir usa o AssemblyVersionAttribute atributo para atribuir um número de versão a um assembly. No tempo de compilação, essas informações de versão são armazenadas com os metadados do assembly. Em tempo de execução, o exemplo recupera o valor da Type.Assembly propriedade em um tipo encontrado no assembly para obter uma referência ao assembly em execução e recupera as informações de versão do assembly da Version propriedade do AssemblyName objeto retornado pelo Assembly.GetName método .

using System;
using System.Reflection;

[assembly:AssemblyVersionAttribute("2.0.1")]

public class Example1
{
   public static void Main()
   {
      Assembly thisAssem = typeof(Example1).Assembly;
      AssemblyName thisAssemName = thisAssem.GetName();
       
      Version ver = thisAssemName.Version;
       
      Console.WriteLine("This is version {0} of {1}.", ver, thisAssemName.Name);    
   }
}
// The example displays the following output:
//        This is version 2.0.1.0 of Example1.
Imports System.Reflection

<Assembly:AssemblyVersionAttribute("2.0.1")>
Module Example1
   Public Sub Main()
       Dim thisAssem As Assembly = GetType(Example1).Assembly
       Dim thisAssemName As AssemblyName = thisAssem.GetName()
       
       Dim ver As Version = thisAssemName.Version
       
       Console.WriteLine("This is version {0} of {1}.", ver, thisAssemName.Name)    
   End Sub
End Module
' The example displays the following output:
'      This is version 2.0.1.0 of Example1.

Comentários

O AssemblyVersionAttribute atributo é usado para atribuir um número de versão a um assembly. Esse número de versão é armazenado com os metadados do assembly.

O número de versão do assembly faz parte da identidade de um assembly e desempenha um papel fundamental na associação ao assembly e à política de versão. A política de versão padrão do runtime diz que aplicativos só são executados com as versões com que foram compilados e testados, a menos que essa política de versão seja substituída pela política de versão explícita em arquivos de configuração (o arquivo de configuração do aplicativo, o arquivo de política do editor e o arquivo de configuração do administrador do computador). Consulte Assemblies no .NET para obter mais informações.

Observação

A verificação de versão só ocorre em assemblies com nomes fortes.

O número de versão tem quatro partes, da seguinte maneira:

<versão> principal.<versão> secundária.<número de build>.<Revisão>

Importante

Todos os componentes da versão devem ser inteiros maiores ou iguais a 0. Os metadados restringem os componentes principais, secundários, de build e de revisão de um assembly a um valor máximo de UInt16.MaxValue - 1. Se um componente exceder esse valor, ocorrerá um erro de compilação.

Por exemplo, [assembly:AssemblyVersion("2.3.25.1")] indica 2 como a versão principal, 3 como a versão secundária, 25 como o número de build e 1 como o número de revisão.

O AssemblyVersionAttribute atributo permite que você especifique um asterisco (*) no lugar do número de build ou revisão. Um número de versão, como, por [assembly:AssemblyVersion("1.2.*")] exemplo, especifica 1 como a versão principal e 2 como a versão secundária e aceita os números de build e revisão padrão. Um número de versão como [assembly:AssemblyVersion("1.2.15.*")] especifica 1 como a versão principal, 2 como a versão secundária e 15 como o número de build e aceita o número de revisão padrão. O número de build padrão é incrementado diariamente. O número de revisão padrão é o número de segundos desde a meia-noite no horário local (sem levar em conta os ajustes de fuso horário para o horário de verão), dividido por 2. Se você especificar um asterisco para o número de build, não poderá especificar um número de revisão.

Importante

Uso do AssemblyVersionAttribute atributo que especifica um asterisco:

  • Torna as saídas de build não reproduzíveis (consulte Builds reproduzíveis). Se o projeto definir Deterministic a propriedade de build como true um erro CS8357 , será relatado pelo compilador.
  • Pode prejudicar o desempenho do build, pois impede que o build faça cache de saídas do compilador.
  • É incompatível com os recursos Editar & Continuar e Recarga Dinâmica.

Você pode atenuar alguns desses problemas limitando o uso de versões baseadas em tempo para liberar builds usando a compilação condicional, da seguinte forma:

#if DEBUG
[assembly: AssemblyVersion("1.0.0.0")]
#else
[assembly: AssemblyVersion("1.0.*")]
#endif

Uma abordagem melhor para o controle de versão é derivar o assembly ou a versão do arquivo do HEAD SHA de confirmação (para repositórios git). Consulte, por exemplo, Nerdbank.GitVersioning.

As versões principal e secundária do assembly são usadas como o número de versão da biblioteca de tipos quando o assembly é exportado. Alguns hosts COM não aceitam bibliotecas de tipos com o número de versão 0.0. Portanto, se você quiser expor um assembly a clientes COM, defina a versão do assembly explicitamente como 1.0 na AssemblyVersionAttribute página para projetos criados fora do Visual Studio 2005 e sem AssemblyVersionAttribute especificação. Faça isso mesmo quando a versão do assembly for 0.0. Todos os projetos criados no Visual Studio 2005 têm uma versão de assembly padrão da 1.0.*.

Para obter o nome de um assembly que você carregou, chame GetName no assembly para obter um AssemblyNamee, em seguida, obter a Version propriedade . Para obter o nome de um assembly que você não carregou, chame GetAssemblyName do aplicativo cliente para marcar a versão do assembly que seu aplicativo usa.

O AssemblyVersionAttribute atributo só pode ser aplicado uma vez. Alguns modelos de projeto do Visual Studio já incluem o atributo . Nesses projetos, adicionar o atributo no código causa um erro do compilador.

Construtores

AssemblyVersionAttribute(String)

Inicializa uma nova instância da classe AssemblyVersionAttribute com o número de versão do assembly que está sendo atribuído.

Propriedades

TypeId

Quando implementado em uma classe derivada, obtém um identificador exclusivo para este Attribute.

(Herdado de Attribute)
Version

Obtém o número de versão do assembly atribuído.

Métodos

Equals(Object)

Retorna um valor que indica se essa instância é igual a um objeto especificado.

(Herdado de Attribute)
GetHashCode()

Retorna o código hash para a instância.

(Herdado de Attribute)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
IsDefaultAttribute()

Quando substituído em uma classe derivada, indica se o valor dessa instância é o valor padrão para a classe derivada.

(Herdado de Attribute)
Match(Object)

Quando substituído em uma classe derivada, retorna um valor que indica se essa instância é igual a um objeto especificado.

(Herdado de Attribute)
MemberwiseClone()

Cria uma cópia superficial do Object atual.

(Herdado de Object)
ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.

(Herdado de Object)

Implantações explícitas de interface

_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Mapeia um conjunto de nomes para um conjunto correspondente de identificadores de expedição.

(Herdado de Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Recupera as informações de tipo para um objeto, que pode ser usado para obter as informações de tipo para uma interface.

(Herdado de Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Retorna o número de interfaces de informações do tipo que um objeto fornece (0 ou 1).

(Herdado de Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Fornece acesso a propriedades e métodos expostos por um objeto.

(Herdado de Attribute)

Aplica-se a

Confira também