Udostępnij przez


AssemblyVersionAttribute Klasa

Definicja

Określa wersję przypisywanego zestawu.

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
Dziedziczenie
AssemblyVersionAttribute
Atrybuty

Przykłady

W poniższym przykładzie użyto atrybutu AssemblyVersionAttribute w celu przypisania numeru wersji do zestawu. W czasie kompilacji te informacje o wersji są przechowywane z metadanymi zestawu. W czasie wykonywania przykład pobiera wartość Type.Assembly właściwości w typie znalezionym w zestawie, aby uzyskać odwołanie do wykonywanego zestawu i pobiera informacje o wersji zestawu z Version właściwości AssemblyName obiektu zwróconego przez metodę Assembly.GetName .

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.

Uwagi

Atrybut AssemblyVersionAttribute służy do przypisywania numeru wersji do zestawu. Numer wersji jest następnie przechowywany z metadanymi zestawu.

Numer wersji zestawu jest częścią tożsamości zestawu i odgrywa kluczową rolę w powiązaniu z zestawem i zasadami wersji. Domyślna zasada dotycząca wersji środowiska dla środowiska uruchomieniowego stanowi, że aplikacje są uruchamiane tylko w wersjach, w których zostały skompilowane i przetestowane, chyba że inaczej stanowią jawnie zasady dotyczące wersji określone w plikach konfiguracji (plik konfiguracji aplikacji, plik zasad wydawcy i plik konfiguracji administratora komputera). Aby uzyskać więcej informacji, zobacz Zestawy na platformie .NET .

Uwaga

Sprawdzanie wersji dotyczy tylko zestawów o silnej nazwie.

Numer wersji ma cztery części w następujący sposób:

<wersja> główna.<wersja pomocnicza>.<numer kompilacji>.<— zmiana>

Ważne

Wszystkie składniki wersji muszą być liczbą całkowitą większą lub równą 0. Metadane ograniczają główne, pomocnicze, kompilowanie i poprawki składniki zestawu do maksymalnej UInt16.MaxValue wartości – 1. Jeśli składnik przekroczy tę wartość, wystąpi błąd kompilacji.

Na przykład [assembly:AssemblyVersion("2.3.25.1")] wskazuje 2 jako wersję główną, 3 jako wersję pomocniczą, 25 jako numer kompilacji i 1 jako numer poprawki.

Atrybut AssemblyVersionAttribute umożliwia określenie gwiazdki (*) zamiast numeru kompilacji lub poprawki. Numer wersji, taki jak [assembly:AssemblyVersion("1.2.*")] określa 1 jako wersję główną i 2 jako wersję pomocniczą, i akceptuje domyślne numery kompilacji i poprawek. Numer wersji, taki jak [assembly:AssemblyVersion("1.2.15.*")] określa 1 jako wersję główną, 2 jako wersję pomocniczą i 15 jako numer kompilacji i akceptuje domyślny numer poprawki. Domyślny numer kompilacji zwiększa się codziennie. Domyślny numer poprawki to liczba sekund od północy czasu lokalnego (bez uwzględniania korekt strefy czasowej dla czasu letniego), podzielona przez 2. Jeśli określisz gwiazdkę dla numeru kompilacji, nie możesz określić numeru poprawki.

Ważne

Użyj atrybutu AssemblyVersionAttribute , który określa gwiazdkę:

  • Sprawia, że dane wyjściowe kompilacji nie są odtwarzalne (zobacz Odtwarzalne kompilacje). Jeśli projekt ustawia Deterministic właściwość kompilacji na true błąd CS8357 jest zgłaszany przez kompilator.
  • Może obniżyć wydajność kompilacji, ponieważ uniemożliwia buforowanie danych wyjściowych kompilatora.
  • Jest niezgodny z funkcjami Edytuj & Kontynuuj i Przeładowywanie na gorąco.

Niektóre z tych problemów można rozwiązać, ograniczając użycie wersji opartych na czasie do wydawania kompilacji przy użyciu kompilacji warunkowej, w następujący sposób:

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

Lepszym podejściem do przechowywania wersji jest uzyskanie wersji zestawu lub pliku z HEAD zatwierdzenia SHA (w przypadku repozytoriów git). Zobacz na przykład Nerdbank.GitVersioning.

Wersje główne i pomocnicze zestawu są używane jako numer wersji biblioteki typów podczas eksportowania zestawu. Niektóre hosty COM nie akceptują bibliotek typów z numerem wersji 0.0. W związku z tym, jeśli chcesz uwidocznić zestaw dla klientów COM, ustaw wersję zestawu jawnie na 1.0 na AssemblyVersionAttribute stronie dla projektów utworzonych poza programem Visual Studio 2005 i bez określonego AssemblyVersionAttribute . Zrób to nawet wtedy, gdy wersja zestawu to 0.0. Wszystkie projekty utworzone w programie Visual Studio 2005 mają domyślną wersję zestawu 1.0.*.

Aby uzyskać nazwę załadowanego zestawu, wywołaj GetName zestaw, aby uzyskać AssemblyNamewłaściwość , a następnie pobierz Version właściwość . Aby uzyskać nazwę zestawu, którego nie załadowano, wywołaj wywołanie GetAssemblyName z aplikacji klienckiej, aby sprawdzić wersję zestawu używaną przez aplikację.

Atrybut AssemblyVersionAttribute można zastosować tylko raz. Niektóre szablony projektów programu Visual Studio zawierają już atrybut. W tych projektach dodanie atrybutu w kodzie powoduje błąd kompilatora.

Konstruktory

AssemblyVersionAttribute(String)

Inicjuje AssemblyVersionAttribute nowe wystąpienie klasy z numerem wersji przypisywanego zestawu.

Właściwości

TypeId

Po zaimplementowaniu w klasie pochodnej pobiera unikatowy identyfikator dla tego elementu Attribute.

(Odziedziczone po Attribute)
Version

Pobiera numer wersji przypisanego zestawu.

Metody

Equals(Object)

Zwraca wartość wskazującą, czy to wystąpienie jest równe podanemu obiektowi.

(Odziedziczone po Attribute)
GetHashCode()

Zwraca wartość skrótu dla tego wystąpienia.

(Odziedziczone po Attribute)
GetType()

Type Pobiera bieżące wystąpienie.

(Odziedziczone po Object)
IsDefaultAttribute()

W przypadku zastąpienia w klasie pochodnej wskazuje, czy wartość tego wystąpienia jest wartością domyślną klasy pochodnej.

(Odziedziczone po Attribute)
Match(Object)

W przypadku zastąpienia w klasie pochodnej zwraca wartość wskazującą, czy to wystąpienie jest równe określonemu obiektowi.

(Odziedziczone po Attribute)
MemberwiseClone()

Tworzy płytkią kopię bieżącego Objectelementu .

(Odziedziczone po Object)
ToString()

Zwraca ciąg reprezentujący bieżący obiekt.

(Odziedziczone po Object)

Jawne implementacje interfejsu

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

Zestaw nazw jest mapowany na odpowiedni zestaw identyfikatorów wysyłania.

(Odziedziczone po Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Pobiera informacje o typie obiektu, którego można użyć do pobrania informacji o typie interfejsu.

(Odziedziczone po Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Pobiera informację o liczbie typów interfejsów, jakie zawiera obiekt (0 lub 1).

(Odziedziczone po Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Umożliwia dostęp do właściwości i metod udostępnianych przez obiekt.

(Odziedziczone po Attribute)

Dotyczy

Zobacz też