Partilhar 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

Nome Description
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

Nome Description
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

Nome Description
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

Nome Description
_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