アセンブリのバージョン管理Assembly Versioning

共通言語ランタイムを使用するアセンブリのバージョン管理は、すべてアセンブリ レベルで行われます。All versioning of assemblies that use the common language runtime is done at the assembly level. アセンブリの特定のバージョン、および依存する各アセンブリのバージョンは、アセンブリのマニフェストに記録されます。The specific version of an assembly and the versions of dependent assemblies are recorded in the assembly's manifest. ランタイムの既定のバージョン ポリシーは、構成ファイル (アプリケーション構成ファイル、発行者ポリシー ファイル、コンピューター管理者の構成ファイル) に指定した明示的なバージョン ポリシーでオーバーライドされない限り、アプリケーションが作成およびテストされた時点のバージョンの場合にだけそのアプリケーションを実行します。The default version policy for the runtime is that applications run only with the versions they were built and tested with, unless overridden by explicit version policy in configuration files (the application configuration file, the publisher policy file, and the computer's administrator configuration file).

注意

バージョン管理は、厳密な名前付きのアセンブリに対してだけ実行されます。Versioning is done only on assemblies with strong names.

ランタイムは、アセンブリ バインディング要求を解決するために、いくつかの手順を実行します。The runtime performs several steps to resolve an assembly binding request:

  1. 元のアセンブリ参照を確認し、バインド先のアセンブリのバージョンを確認します。Checks the original assembly reference to determine the version of the assembly to be bound.

  2. バージョン ポリシーを適用するために利用できる構成ファイルをすべてチェックします。Checks for all applicable configuration files to apply version policy.

  3. 元のアセンブリ参照と、構成ファイルで指定されているリダイレクトから正しいアセンブリを判断し、呼び出し元のアセンブリにバインドされるバージョンを判断します。Determines the correct assembly from the original assembly reference and any redirection specified in the configuration files, and determines the version that should be bound to the calling assembly.

  4. グローバル アセンブリ キャッシュと、構成ファイルで指定されたコードベースをチェックした後、「ランタイムがアセンブリを検索する方法」に説明されているプローブ規則を使用して、アプリケーションのディレクトリとサブディレクトリをチェックします。Checks the global assembly cache, codebases specified in configuration files, and then checks the application's directory and subdirectories using the probing rules explained in How the Runtime Locates Assemblies.

これらの手順を次の図に示します。The following illustration shows these steps:

アセンブリ バインディング要求の解決手順を示す図。

アプリケーションの設定の詳細については、「アプリの構成」を参照してください。For more information about configuring applications, see Configuring Apps. バインド ポリシーの詳細については、「ランタイムがアセンブリを検索する方法」を参照してください。For more information about binding policy, see How the Runtime Locates Assemblies.

バージョン情報Version Information

各アセンブリは、次の 2 種類の形でバージョン情報を表示します。Each assembly has two distinct ways of expressing version information:

  • アセンブリのバージョン番号。アセンブリ名やカルチャ情報と共に、アセンブリの識別子を構成します。The assembly's version number, which, together with the assembly name and culture information, is part of the assembly's identity. この番号は、バージョン ポリシーを強制適用するためにランタイムで使用され、実行時の型解決プロセスで重要な役割を果たします。This number is used by the runtime to enforce version policy and plays a key part in the type resolution process at run time.

  • 補足バージョン。これは、情報の提供だけを目的とした、追加のバージョン情報を表す文字列です。An informational version, which is a string that represents additional version information included for informational purposes only.

アセンブリのバージョン番号Assembly Version Number

各アセンブリの識別子には、バージョン番号が含まれています。Each assembly has a version number as part of its identity. そのため、バージョン番号が異なる 2 つのアセンブリは、ランタイムでは、まったく異なるアセンブリと見なされます。As such, two assemblies that differ by version number are considered by the runtime to be completely different assemblies. このバージョン番号は、次に示す形式の 4 つの部分から成る文字列として表されます。This version number is physically represented as a four-part string with the following format:

<メジャー バージョン>.<マイナー バージョン>.<ビルド番号>.<改訂番号><major version>.<minor version>.<build number>.<revision>

たとえばバージョン 1.5.1254.0 の場合、1 はメジャー バージョン、5 はマイナー バージョン、1254 はビルド番号、0 はリビジョン番号を表します。For example, version 1.5.1254.0 indicates 1 as the major version, 5 as the minor version, 1254 as the build number, and 0 as the revision number.

バージョン番号は、アセンブリ名や公開キーなどのほかの識別子情報や、アプリケーションに関連付けられているほかの複数のアセンブリの関係や識別子に関する情報と共に、アセンブリ マニフェストに保存されます。The version number is stored in the assembly manifest along with other identity information, including the assembly name and public key, as well as information on relationships and identities of other assemblies connected with the application.

アセンブリの作成時に、開発ツールによって、アセンブリ マニフェストで参照される各アセンブリについての依存情報が記録されます。When an assembly is built, the development tool records dependency information for each assembly that is referenced in the assembly manifest. ランタイムは、これらのバージョン番号と、管理者、アプリケーション、または発行者が設定した構成情報を組み合わせて使用し、参照先アセンブリの正しいバージョンを読み込みます。The runtime uses these version numbers, in conjunction with configuration information set by an administrator, an application, or a publisher, to load the proper version of a referenced assembly.

バージョン管理の目的のため、ランタイムでは、通常の名前の付いたアセンブリと、厳密な名前の付いたアセンブリが区別されます。The runtime distinguishes between regular and strong-named assemblies for the purposes of versioning. バージョンのチェックは、厳密な名前付きのアセンブリに対してだけ実行されます。Version checking only occurs with strong-named assemblies.

バージョン バインド ポリシーの指定については、「アプリの構成」を参照してください。For information about specifying version binding policies, see Configuring Apps. ランタイムがバージョン情報を使用して特定のアセンブリを見つけ出す方法については、「ランタイムがアセンブリを検索する方法」を参照してください。For information about how the runtime uses version information to find a particular assembly, see How the Runtime Locates Assemblies.

アセンブリの補足バージョンAssembly Informational Version

補足バージョンは、情報の提供だけを目的として、追加のバージョン情報をアセンブリに追加するための文字列です。この情報は実行時には使用されません。The informational version is a string that attaches additional version information to an assembly for informational purposes only; this information is not used at run time. 補足バージョンはテキスト ベースで、その製品のマーケティング資料、パッケージ、あるいは製品名に対応するものであり、実行時には使用されません。The text-based informational version corresponds to the product's marketing literature, packaging, or product name and is not used by the runtime. たとえば、補足バージョンの例は "共通言語ランタイム バージョン 1.0" や "NET Control SP 2" などになります。For example, an informational version could be "Common Language Runtime version 1.0" or "NET Control SP 2". Microsoft Windows のファイル プロパティ ダイアログの [バージョン] タブでは、この情報は [製品バージョン] という項目に表示されます。On the Version tab of the file properties dialog in Microsoft Windows, this information appears in the item "Product Version".

注意

任意のテキストを指定できますが、文字列がアセンブリのバージョン番号で使用されている形式でなかったり、形式が正しくてもワイルドカードを含んでいたりすると、コンパイルで警告メッセージが表示されます。Although you can specify any text, a warning message appears on compilation if the string is not in the format used by the assembly version number, or if it is in that format but contains wildcards. この警告は、実行には影響を与えません。This warning is harmless.

補足バージョンは、カスタム属性 System.Reflection.AssemblyInformationalVersionAttribute を使って表されます。The informational version is represented using the custom attribute System.Reflection.AssemblyInformationalVersionAttribute. 補足バージョン属性の詳細については、「アセンブリ属性の設定」を参照してください。For more information about the informational version attribute, see Setting Assembly Attributes.

関連項目See also