AssemblyVersionAttribute Třída
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Určuje verzi sestavení, která je přiřazena.
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
- Dědičnost
- Atributy
Příklady
Následující příklad používá AssemblyVersionAttribute atribut k přiřazení čísla verze sestavení. V době kompilace se tyto informace o verzi ukládají s metadaty sestavení. V době běhu příklad načte hodnotu Type.Assembly vlastnosti typu nalezeného v sestavení získat odkaz na spuštěné sestavení a načte informace o verzi sestavení z Version vlastnosti AssemblyName objektu vráceného metodou 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.
Poznámky
Atribut AssemblyVersionAttribute se používá k přiřazení čísla verze sestavení. Toto číslo verze se pak uloží s metadaty sestavení.
Číslo verze sestavení je součástí identity sestavení a hraje klíčovou součást vazby na sestavení a v zásadách verzí. Výchozí zásada verze modulu runtime spočívá v tom, že aplikace běží jenom s verzemi, se kterými byly sestaveny a testovány, pokud nejsou přepsány explicitními zásadami verzí v konfiguračních souborech (konfigurační soubor aplikace, soubor zásad vydavatele a konfigurační soubor správce počítače). Další informace najdete v tématu Sestavení v .NET .
Poznámka:
Kontrola verzí se provádí pouze u sestavení se silným názvem.
Číslo verze má čtyři části:
<hlavní verze>.<podverze>.<číslo buildu>.<revize>
Důležité
Všechny součásti verze musí být celé číslo větší nebo rovno 0. Metadata omezují hlavní, vedlejší, sestavení a revizní komponenty sestavení na maximální hodnotu UInt16.MaxValue - 1. Pokud komponenta tuto hodnotu překročí, dojde k chybě kompilace.
Například [assembly:AssemblyVersion("2.3.25.1")] označuje 2 jako hlavní verzi, 3 jako podverzi, 25 jako číslo buildu a 1 jako číslo revize.
Atribut AssemblyVersionAttribute umožňuje zadat hvězdičku (*) místo čísla sestavení nebo revize. Číslo verze, například [assembly:AssemblyVersion("1.2.*")] určuje 1 jako hlavní verzi a 2 jako podverzi, a přijímá výchozí čísla sestavení a revizí. Číslo verze, například [assembly:AssemblyVersion("1.2.15.*")] určuje 1 jako hlavní verzi, 2 jako podverzi a 15 jako číslo buildu a přijímá výchozí číslo revize. Výchozí číslo buildu se každý den zvýší. Výchozí číslo revize je počet sekund od půlnoci místního času (bez zohlednění úprav časového pásma pro letní čas) děleno 2. Pokud pro číslo buildu zadáte hvězdičku, nemůžete zadat číslo revize.
Důležité
Použití atributu AssemblyVersionAttribute , který určuje hvězdičku:
- Výstupy sestavení nejsou reprodukovatelné (viz reprodukovatelné sestavení). Pokud projekt nastaví
Deterministicvlastnost sestavení natruechybuCS8357kompilátoru. - Může snížit výkon sestavení, protože brání sestavení v ukládání výstupů kompilátoru do mezipaměti.
- Není kompatibilní s funkcemi pro úpravy a pokračování a opětovné načítání za provozu .
Některé z těchto problémů můžete zmírnit omezením použití časových verzí k vydání sestavení pomocí podmíněné kompilace, například:
#if DEBUG
[assembly: AssemblyVersion("1.0.0.0")]
#else
[assembly: AssemblyVersion("1.0.*")]
#endif
Lepším přístupem k správě verzí je odvození sestavení nebo verze souboru z HEAD potvrzení SHA (pro úložiště Git). Viz například Nerdbank.GitVersioning.
Hlavní a podverze sestavení se při exportu sestavení používají jako číslo verze knihovny typů. Někteří hostitelé modelu COM nepřijímají knihovny typů s číslem verze 0.0. Proto pokud chcete vystavit sestavení klientům MODELU COM, nastavte verzi sestavení explicitně na 1.0 na AssemblyVersionAttribute stránce pro projekty vytvořené mimo Visual Studio 2005 a bez AssemblyVersionAttribute zadání. Udělejte to i v případě, že verze sestavení je 0.0. Všechny projekty vytvořené v sadě Visual Studio 2005 mají výchozí verzi sestavení 1.0.*.
Chcete-li získat název sestavení, které jste načetli, volání GetName sestavení získat AssemblyNamea pak získat Version vlastnost. Pokud chcete získat název sestavení, které jste nenačetli, zavolejte GetAssemblyName z klientské aplikace a zkontrolujte verzi sestavení, kterou vaše aplikace používá.
Atribut AssemblyVersionAttribute lze použít pouze jednou. Některé šablony projektů sady Visual Studio již obsahují atribut. Přidání atributu v kódu v těchto projektech způsobí chybu kompilátoru.
Konstruktory
| Name | Description |
|---|---|
| AssemblyVersionAttribute(String) |
Inicializuje novou instanci |
Vlastnosti
| Name | Description |
|---|---|
| TypeId |
Při implementaci v odvozené třídě získá jedinečný identifikátor pro tento Attribute. (Zděděno od Attribute) |
| Version |
Získá číslo verze atributu sestavení. |
Metody
| Name | Description |
|---|---|
| Equals(Object) |
Vrátí hodnotu, která určuje, zda je tato instance rovna zadanému objektu. (Zděděno od Attribute) |
| GetHashCode() |
Vrátí kód hash pro tuto instanci. (Zděděno od Attribute) |
| GetType() |
Získá Type aktuální instance. (Zděděno od Object) |
| IsDefaultAttribute() |
Při přepsání v odvozené třídě určuje, zda hodnota této instance je výchozí hodnotou pro odvozenou třídu. (Zděděno od Attribute) |
| Match(Object) |
Při přepsání v odvozené třídě vrátí hodnotu, která určuje, zda se tato instance rovná zadanému objektu. (Zděděno od Attribute) |
| MemberwiseClone() |
Vytvoří mělkou kopii aktuálního Object. (Zděděno od Object) |
| ToString() |
Vrátí řetězec, který představuje aktuální objekt. (Zděděno od Object) |
Explicitní implementace rozhraní
| Name | Description |
|---|---|
| _Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) |
Mapuje sadu názvů na odpovídající sadu identifikátorů pro rozesílání. (Zděděno od Attribute) |
| _Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) |
Načte informace o typu objektu, který lze použít k získání informací o typu pro rozhraní. (Zděděno od Attribute) |
| _Attribute.GetTypeInfoCount(UInt32) |
Získá počet rozhraní typu informací, které objekt poskytuje (0 nebo 1). (Zděděno od Attribute) |
| _Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) |
Poskytuje přístup k vlastnostem a metodám vystaveným objektem. (Zděděno od Attribute) |