AssemblyVersionAttribute Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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
- 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 comotrue
um erroCS8357
, 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 |
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) |