Bagikan melalui


AssemblyVersionAttribute Kelas

Definisi

Menentukan versi assembly yang dikaitkan.

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
Warisan
AssemblyVersionAttribute
Atribut

Contoh

Contoh berikut menggunakan AssemblyVersionAttribute atribut untuk menetapkan nomor versi ke assembly. Pada waktu kompilasi, informasi versi ini disimpan dengan metadata assembly. Pada run time, contoh mengambil nilai Type.Assembly properti pada jenis yang ditemukan di assembly untuk mendapatkan referensi ke assembly yang mengeksekusi, dan mengambil informasi versi assembly dari Version properti AssemblyName objek yang dikembalikan oleh Assembly.GetName metode .

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.

Keterangan

Atribut AssemblyVersionAttribute digunakan untuk menetapkan nomor versi ke assembly. Nomor versi tersebut kemudian disimpan dengan metadata assembly.

Nomor versi rakitan adalah bagian dari identitas perakitan dan memainkan bagian penting dalam mengikat perakitan dan dalam kebijakan versi. Kebijakan versi default untuk runtime adalah bahwa aplikasi hanya berjalan dengan versi yang mereka buat dan diuji dengan, kecuali diganti dengan kebijakan versi eksplisit dalam file konfigurasi (file konfigurasi aplikasi, file kebijakan penerbit, dan file konfigurasi administrator komputer). Lihat Assembly di .NET untuk informasi selengkapnya.

Catatan

Pemeriksaan versi hanya terjadi dengan assembly bernama kuat.

Nomor versi memiliki empat bagian, sebagai berikut:

<versi> utama.<versi> minor.<nomor> build.<Revisi>

Penting

Semua komponen versi harus bilangan bulat yang lebih besar dari atau sama dengan 0. Metadata membatasi komponen utama, minor, build, dan revisi untuk assembly ke nilai UInt16.MaxValue maksimum - 1. Jika komponen melebihi nilai ini, kesalahan kompilasi terjadi.

Misalnya, [assembly:AssemblyVersion("2.3.25.1")] menunjukkan 2 sebagai versi utama, 3 sebagai versi minor, 25 sebagai nomor build, dan 1 sebagai nomor revisi.

Atribut ini AssemblyVersionAttribute memungkinkan Anda menentukan tanda bintang (*) sebagai pengganti nomor build atau revisi. Nomor versi seperti [assembly:AssemblyVersion("1.2.*")] menentukan 1 sebagai versi utama dan 2 sebagai versi minor, dan menerima nomor build dan revisi default. Nomor versi seperti [assembly:AssemblyVersion("1.2.15.*")] menentukan 1 sebagai versi utama, 2 sebagai versi minor, dan 15 sebagai nomor build, dan menerima nomor revisi default. Kenaikan angka build default setiap hari. Nomor revisi default adalah jumlah detik sejak tengah malam waktu setempat (tanpa mempertimbangkan penyesuaian zona waktu untuk waktu musim panas), dibagi 2. Jika Anda menentukan tanda bintang untuk nomor build, Anda tidak dapat menentukan nomor revisi.

Penting

Penggunaan AssemblyVersionAttribute atribut yang menentukan tanda bintang:

  • Membuat output build tidak dapat direproduksi (lihat Build yang dapat direproduksi). Jika proyek menetapkan Deterministic properti build ke true kesalahan CS8357 dilaporkan oleh pengkompilasi.
  • Mungkin menurunkan performa build, karena mencegah build membuat cache output pengkompilasi.
  • Tidak kompatibel dengan fitur Edit & Lanjutkan dan Muat Ulang Panas .

Anda dapat mengurangi beberapa masalah ini dengan membatasi penggunaan versi berbasis waktu untuk merilis build menggunakan kompilasi bersyar, seperti:

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

Pendekatan yang lebih baik untuk penerapan versi adalah memperoleh versi rakitan atau file dari HEAD SHA penerapan (untuk repositori git). Lihat, misalnya, Nerdbank.GitVersioning.

Versi utama dan minor rakitan digunakan sebagai nomor versi pustaka jenis saat rakitan diekspor. Beberapa host COM tidak menerima pustaka jenis dengan nomor versi 0.0. Oleh karena itu, jika Anda ingin mengekspos assembly ke klien COM, atur versi assembly secara eksplisit ke 1.0 di AssemblyVersionAttribute halaman untuk proyek yang dibuat di luar Visual Studio 2005 dan tanpa AssemblyVersionAttribute ditentukan. Lakukan ini bahkan ketika versi assembly adalah 0.0. Semua proyek yang dibuat di Visual Studio 2005 memiliki versi rakitan default 1.0.*.

Untuk mendapatkan nama assembly yang telah Anda muat, panggil GetName assembly untuk mendapatkan AssemblyName, lalu dapatkan Version properti . Untuk mendapatkan nama assembly yang belum Anda muat, panggil GetAssemblyName dari aplikasi klien Anda untuk memeriksa versi assembly yang digunakan aplikasi Anda.

Atribut AssemblyVersionAttribute hanya dapat diterapkan sekali. Beberapa templat proyek Visual Studio sudah menyertakan atribut . Dalam proyek tersebut, menambahkan atribut dalam kode menyebabkan kesalahan pengkompilasi.

Konstruktor

AssemblyVersionAttribute(String)

Menginisialisasi instans AssemblyVersionAttribute baru kelas dengan nomor versi assembly yang dikaitkan.

Properti

TypeId

Ketika diimplementasikan di kelas turunan, mendapatkan pengidentifikasi unik untuk ini Attribute.

(Diperoleh dari Attribute)
Version

Mendapatkan nomor versi rakitan yang diatribusikan.

Metode

Equals(Object)

Mengembalikan nilai yang menunjukkan apakah instans ini sama dengan objek tertentu.

(Diperoleh dari Attribute)
GetHashCode()

Mengembalikan kode hash untuk instans ini.

(Diperoleh dari Attribute)
GetType()

Mendapatkan dari instans Type saat ini.

(Diperoleh dari Object)
IsDefaultAttribute()

Ketika ditimpa di kelas turunan, menunjukkan apakah nilai instans ini adalah nilai default untuk kelas turunan.

(Diperoleh dari Attribute)
Match(Object)

Saat ditimpa di kelas turunan, mengembalikan nilai yang menunjukkan apakah instans ini sama dengan objek tertentu.

(Diperoleh dari Attribute)
MemberwiseClone()

Membuat salinan dangkal dari saat ini Object.

(Diperoleh dari Object)
ToString()

Mengembalikan string yang mewakili objek saat ini.

(Diperoleh dari Object)

Implementasi Antarmuka Eksplisit

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

Memetakan sekumpulan nama ke sekumpulan pengidentifikasi pengiriman yang sesuai.

(Diperoleh dari Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Mengambil informasi jenis untuk objek, yang dapat digunakan untuk mendapatkan informasi jenis untuk antarmuka.

(Diperoleh dari Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Mengambil jumlah antarmuka informasi jenis yang disediakan objek (baik 0 atau 1).

(Diperoleh dari Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Menyediakan akses ke properti dan metode yang diekspos oleh objek.

(Diperoleh dari Attribute)

Berlaku untuk

Lihat juga