AssemblyVersionAttribute Classe
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
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
- 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
Deterministica propriedade build paratrueo compilador, um erroCS8357é 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 eHot 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 |
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) |