AssemblyVersionAttribute Classe

Definição

Especifica a versão do assembly atribuída.

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 seguinte usa o AssemblyVersionAttribute atributo para atribuir um número de versão a uma assembleia. No momento da compilação, esta informação de versão é armazenada com os metadados do assembly. Em tempo de execução, o exemplo recupera o valor da Type.Assembly propriedade num tipo encontrado na montagem para obter uma referência à montagem em execução, e recupera a informação da versão da montagem a partir da Version propriedade do AssemblyName objeto devolvida 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.

Observações

O AssemblyVersionAttribute atributo é usado para atribuir um número de versão a uma assembleia. Esse número de versão é então armazenado com os metadados da assembleia.

O número de versão da assembly faz parte da identidade de uma assembly e desempenha um papel fundamental na ligação à assembly e à política de versão. A política de versão padrão para o tempo de execução é que os aplicativos são executados somente com as versões com as quais foram criados e testados, a menos que sejam substituídos pela política de versão explícita nos arquivos de configuração (o arquivo de configuração do aplicativo, o arquivo de diretiva do editor e o arquivo de configuração do administrador do computador). Consulte Assemblies in .NET para mais informações.

Note

A verificação de versão só ocorre com assemblies de nome forte.

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

<versão principal>.<versão menor>.<número de compilação>.<revisão>

Importante

Todos os componentes da versão devem ser inteiros maiores ou iguais a 0. Os metadados restringem os componentes maiores, menores, de construção e de revisão para um conjunto a um valor máximo de UInt16.MaxValue - 1. Se um componente exceder este valor, ocorre um erro de compilação.

Por exemplo, [assembly:AssemblyVersion("2.3.25.1")] indica 2 como versão principal, 3 como versão menor, 25 como número de construção e 1 como número de revisão.

O AssemblyVersionAttribute atributo permite-lhe especificar um asterisco (*) em vez do número de compilação ou revisão. Um número de versão, como o [assembly:AssemblyVersion("1.2.*")] 1, especifica 1 como a versão principal e o 2 como a versão menor, aceitando os números padrão de compilação e revisã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 menor e 15 como número de compilação, aceitando o número de revisão padrão. O número de build padrão aumenta diariamente. O número padrão da revisão é o número de segundos desde a meia-noite, hora local, (sem considerar os ajustes de fuso horário para o horário de verão), dividido por 2. Se especificares um asterisco para o número de compilação, não podes especificar um número de revisão.

Importante

Uso do AssemblyVersionAttribute atributo que especifica um asterisco:

  • Torna as saídas da compilação não reproduzíveis (ver compilações reproduzíveis). Se o projeto definir Deterministic a propriedade build para true o compilador, um erro CS8357 é reportado pelo compilador.
  • Pode degradar o desempenho da compilação, pois impede que a compilação armazene em cache as saídas do compilador.
  • É incompatível com o Edit & Continua e Hot Reload funcionalidades.

Pode mitigar alguns destes problemas limitando o uso de versões baseadas no tempo para lançar compilações com compilação condicional, assim:

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

Uma abordagem melhor para o versionamento é derivar a versão assembly ou do ficheiro a partir do HEAD commit SHA (para repositórios git). Veja, por exemplo, Nerdbank.GitVersioning.

As versões maior e menor da montagem são usadas como número de versão da biblioteca de tipos quando a montagem é exportada. Alguns hosts COM não aceitam bibliotecas de tipos com o número de versão 0.0. Portanto, se quiseres expor um assembly a clientes COM, define explicitamente a versão assembly para 1.0 na página AssemblyVersionAttribute para projetos criados fora de Visual Studio 2005 e sem AssemblyVersionAttribute especificado. Faz isto mesmo quando a versão assembly for 0.0. Todos os projetos criados no Visual Studio 2005 têm uma versão assembly padrão da 1.0.*.

Para obter o nome de um conjunto que carregaste, chama GetName o conjunto para obter um AssemblyName, e depois obtenha a Version propriedade. Para obter o nome de um assembly que ainda não carregaste, liga GetAssemblyName a partir da tua aplicação cliente para verificar a versão assembly que a tua aplicação utiliza.

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

Construtores

Name Description
AssemblyVersionAttribute(String)

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

Propriedades

Name Description
TypeId

Quando implementado numa classe derivada, obtém um identificador único para esta Attribute.

(Herdado de Attribute)
Version

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

Métodos

Name Description
Equals(Object)

Devolve um valor que indica se esta instância é igual a um objeto especificado.

(Herdado de Attribute)
GetHashCode()

Devolve o código de hash para esta instância.

(Herdado de Attribute)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
IsDefaultAttribute()

Quando sobrescrito numa classe derivada, indica se o valor desta instância é o valor padrão para a classe derivada.

(Herdado de Attribute)
Match(Object)

Quando sobrescrito numa classe derivada, devolve um valor que indica se esta instância é igual a um objeto especificado.

(Herdado de Attribute)
MemberwiseClone()

Cria uma cópia superficial do atual Object.

(Herdado de Object)
ToString()

Devolve uma cadeia que representa o objeto atual.

(Herdado de Object)

Implementações de Interface Explícita

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

Mapeia um conjunto de nomes para um conjunto correspondente de identificadores de despacho.

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

Recupera a informação de tipo de um objeto, que pode ser usada para obter a informação de tipo para uma interface.

(Herdado de Attribute)
_Attribute.GetTypeInfoCount(UInt32)

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

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

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

(Herdado de Attribute)

Aplica-se a

Ver também