次の方法で共有


AssemblyVersionAttribute クラス

定義

属性を付けるアセンブリのバージョンを指定します。

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
継承
AssemblyVersionAttribute
属性

次の例では、 属性を AssemblyVersionAttribute 使用してバージョン番号をアセンブリに割り当てます。 コンパイル時に、このバージョン情報はアセンブリのメタデータと共に格納されます。 実行時に、この例では、アセンブリ内にある型の プロパティの Type.Assembly 値を取得して実行中のアセンブリへの参照を取得し、 メソッドによって返されるオブジェクトの プロパティから Version アセンブリの AssemblyName バージョン情報を 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.

注釈

属性は AssemblyVersionAttribute 、バージョン番号をアセンブリに割り当てるために使用されます。 そのバージョン番号は、アセンブリのメタデータと共に格納されます。

アセンブリのバージョン番号はアセンブリの固有名の一部であるため、アセンブリへのバインディング、およびバージョンのポリシーは、重要な部分を果たします。 ランタイムの既定のバージョン ポリシーは、構成ファイル (アプリケーション構成ファイル、発行者ポリシー ファイル、コンピューター管理者の構成ファイル) に指定した明示的なバージョン ポリシーでオーバーライドされない限り、アプリケーションが作成およびテストされた時点のバージョンの場合にだけそのアプリケーションを実行します。 詳細については、「 .NET のアセンブリ 」を参照してください。

注意

バージョンのチェックは、厳密な名前付きのアセンブリに対してだけ実行されます。

バージョン番号には、4 つのコンポーネントがあります。

<メジャー バージョン>。<マイナー バージョン>。<ビルド番号>。<リビジョン>

重要

バージョンのすべてのコンポーネントは、0 以上の整数である必要があります。 メタデータの制約によって、アセンブリにおけるメジャー、マイナー、ビルド、およびリビジョン コンポーネントの最大値は、UInt16.MaxValue- 1 です。 コンポーネントがこの値を超えている場合、コンパイル エラーが発生します。

たとえば、[assembly:AssemblyVersion("2.3.25.1")] はメジャー バージョン 2、マイナー バージョン 3、ビルド番号は 25、およびリビジョン番号として 1 を示します。

属性 AssemblyVersionAttribute を使用すると、ビルド番号またはリビジョン番号の代わりにアスタリスク (*) を指定できます。 などの [assembly:AssemblyVersion("1.2.*")] バージョン番号は、メジャー バージョンとして 1、マイナー バージョンとして 2 を指定し、既定のビルド番号とリビジョン番号を受け入れます。 などの [assembly:AssemblyVersion("1.2.15.*")] バージョン番号は、メジャー バージョンとして 1、マイナー バージョンとして 2、ビルド番号として 15 を指定し、既定のリビジョン番号を受け入れます。 既定のビルド番号は、日ごとにインクリメントします。 既定のリビジョン番号は、(サマータイムによる調整を考慮せずに)現地時間の午前 0 時からの経過秒を 2 で割った値です。 ビルド番号にアスタリスクを指定した場合、リビジョン番号を指定することはできません。

重要

アスタリスクを AssemblyVersionAttribute 指定する 属性の使用:

  • ビルド出力を再現不可能にします (「 再現可能なビルド」を参照してください)。 プロジェクトがビルド プロパティをエラーCS8357true設定Deterministicした場合、コンパイラによって報告されます。
  • ビルドがコンパイラ出力をキャッシュできなくなるため、ビルドのパフォーマンスが低下する可能性があります。
  • エディット & コンティニュおよびホット リロード機能と互換性がありません。

次のように、条件付きコンパイルを使用してビルドをリリースするために時間ベースのバージョンの使用を制限することで、これらの問題の一部を軽減できます。

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

バージョン管理のより良い方法は、コミット SHA (Git リポジトリの場合) からアセンブリまたはファイル バージョンを HEAD 派生することです。 Nerdbank.GitVersioning を参照してください。

アセンブリのメジャーおよびマイナー バージョンは、アセンブリをエクスポートするときに、タイプ ライブラリのバージョン番号として使用されます。 一部の COM ホストは、0.0 のバージョン番号を持つタイプ ライブラリを使用することはできません。 したがって、アセンブリを COM クライアントに公開する場合は、Visual Studio 2005 の外部で作成され、指定されていないAssemblyVersionAttributeプロジェクトのページでAssemblyVersionAttributeアセンブリのバージョンを明示的に 1.0 に設定します。 アセンブリのバージョンが 0.0 の場合でも、この操作を行います。 Visual Studio 2005 で作成されたすべてのプロジェクトの既定のアセンブリ バージョンは 1.0.* です。

読み込んだアセンブリの名前を取得するには、アセンブリで を呼び出 GetName して を AssemblyName取得し、 プロパティを Version 取得します。 読み込まれていないアセンブリの名前を取得するには、クライアント アプリケーションから を呼び出GetAssemblyNameして、アプリケーションで使用するアセンブリバージョンをチェックします。

AssemblyVersionAttribute属性は、1 回のみ適用できます。 一部の Visual Studio プロジェクト テンプレートには、属性が既に含まれています。 これらのプロジェクトの場合、コードで属性を追加すると、コンパイラ エラーが発生します。

コンストラクター

AssemblyVersionAttribute(String)

属性を付けるアセンブリのバージョン番号を指定して、AssemblyVersionAttribute クラスの新しいインスタンスを初期化します。

プロパティ

TypeId

派生クラスで実装されると、この Attribute の一意の識別子を取得します。

(継承元 Attribute)
Version

属性付きアセンブリのバージョン番号を取得します。

メソッド

Equals(Object)

このインスタンスが、指定されたオブジェクトと等価であるかどうかを示す値を返します。

(継承元 Attribute)
GetHashCode()

このインスタンスのハッシュ コードを返します。

(継承元 Attribute)
GetType()

現在のインスタンスの Type を取得します。

(継承元 Object)
IsDefaultAttribute()

派生クラスでオーバーライドされるとき、このインスタンスの値が派生クラスの既定値であるかどうかを示します。

(継承元 Attribute)
Match(Object)

派生クラス内でオーバーライドされたときに、指定したオブジェクトとこのインスタンスが等しいかどうかを示す値を返します。

(継承元 Attribute)
MemberwiseClone()

現在の Object の簡易コピーを作成します。

(継承元 Object)
ToString()

現在のオブジェクトを表す文字列を返します。

(継承元 Object)

明示的なインターフェイスの実装

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

一連の名前を対応する一連のディスパッチ識別子に割り当てます。

(継承元 Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

オブジェクトの型情報を取得します。この情報はインターフェイスの型情報の取得に使用できます。

(継承元 Attribute)
_Attribute.GetTypeInfoCount(UInt32)

オブジェクトが提供する型情報インターフェイスの数 (0 または 1) を取得します。

(継承元 Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

オブジェクトによって公開されたプロパティおよびメソッドへのアクセスを提供します。

(継承元 Attribute)

適用対象

こちらもご覧ください