次の方法で共有


コードでアセンブリ属性を設定する

アセンブリ属性は、アセンブリに関する情報を提供する値です。 通常は 、AssemblyInfo.cs ファイルに設定されます。 属性は、次の情報セットに分かれています。

  • アセンブリ ID 属性
  • 情報属性
  • アセンブリ マニフェスト属性
  • 厳密な名前属性

この記事では、コードからアセンブリ属性を追加する範囲について説明します。 (コードではなく) プロジェクトにアセンブリ属性を追加する方法については、「 プロジェクト ファイルでアセンブリ属性を設定する」を参照してください。

アセンブリ ID 属性

厳密な名前 (該当する場合) と共に 3 つの属性によって、アセンブリの ID (名前、バージョン、カルチャ) が決まります。 これらの属性はアセンブリの完全な名前を形成し、コードでアセンブリを参照するときに必要です。 属性を使用して、アセンブリのバージョンとカルチャを設定できます。 コンパイラまたは アセンブリ リンカー (Al.exe) は、アセンブリ マニフェストを含むファイルに基づいて、アセンブリの作成時に名前の値を設定します。

次の表では、バージョンとカルチャの属性について説明します。

アセンブリ ID 属性 説明
AssemblyCultureAttribute アセンブリがサポートするカルチャを示す列挙フィールド。 アセンブリは、既定のカルチャのリソースが含まれていることを示す、カルチャの独立を指定することもできます。 手記: ランタイムは、カルチャ属性が null に設定されていないアセンブリをサテライト アセンブリとして扱います。 このようなアセンブリは、サテライト アセンブリバインド規則の対象となります。 詳細については、「 ランタイムがアセンブリを検索する方法」を参照してください。
AssemblyFlagsAttribute アセンブリ属性を設定する値 (アセンブリを並べて実行できるかどうかなど)。
AssemblyVersionAttribute メジャー形式の数値。minorビルドリビジョン (例: 2.4.0.0)。 共通言語ランタイムでは、この値を使用して、厳密な名前のアセンブリでバインド操作を実行します。 手記:AssemblyInformationalVersionAttribute属性がアセンブリに適用されていない場合、AssemblyVersionAttribute属性で指定されたバージョン番号は、Application.ProductVersionApplication.UserAppDataPath、およびApplication.UserAppDataRegistryプロパティによって使用されます。

次のコード例は、バージョン属性とカルチャ属性をアセンブリに適用する方法を示しています。

// Set version number for the assembly.
[assembly:AssemblyVersionAttribute("4.3.2.1")];
// Set culture as German.
[assembly:AssemblyCultureAttribute("de")];
// Set version number for the assembly.
[assembly:AssemblyVersionAttribute("4.3.2.1")]
// Set culture as German.
[assembly:AssemblyCultureAttribute("de")]
' Set version number for the assembly.
<Assembly:AssemblyVersionAttribute("4.3.2.1")>
' Set culture as German.
<Assembly:AssemblyCultureAttribute("de")>

情報属性

情報属性を使用して、アセンブリの追加の会社または製品情報を提供できます。 次の表では、アセンブリに適用できる情報属性について説明します。

Informational 属性 説明
AssemblyCompanyAttribute 会社名を指定する文字列値。
AssemblyCopyrightAttribute 著作権情報を指定する文字列値。
AssemblyFileVersionAttribute Win32 ファイルのバージョン番号を指定する文字列値。 これは通常、アセンブリ バージョンに既定で設定されます。
AssemblyInformationalVersionAttribute 完全な製品バージョン番号など、共通言語ランタイムで使用されないバージョン情報を指定する文字列値。 手記: この属性がアセンブリに適用されている場合は、 Application.ProductVersion プロパティを使用して、指定した文字列を実行時に取得できます。 文字列は、 Application.UserAppDataPath および Application.UserAppDataRegistry プロパティによって提供されるパスとレジストリ キーでも使用されます。
AssemblyProductAttribute 製品情報を指定する文字列値。
AssemblyTrademarkAttribute 商標情報を指定する文字列値。

これらの属性は、アセンブリの Windows プロパティ ページに表示することも、 /win32res コンパイラ オプションを使用して Win32 リソース ファイルを指定してオーバーライドすることもできます。

アセンブリ マニフェスト属性

アセンブリ マニフェスト属性を使用して、タイトル、説明、既定のエイリアス、構成などの情報をアセンブリ マニフェストに提供できます。 次の表では、アセンブリ マニフェスト属性について説明します。

アセンブリ マニフェスト属性 説明
AssemblyConfigurationAttribute アセンブリの構成を示す文字列値 (Retail や Debug など)。 ランタイムはこの値を使用しません。
AssemblyDefaultAliasAttribute アセンブリを参照して使用する既定のエイリアスを指定する文字列値。 アセンブリ自体の名前がフレンドリでない (GUID 値など) 場合、この値はフレンドリ名を提供します。 この値は、完全なアセンブリ名の短い形式として使用することもできます。
AssemblyDescriptionAttribute アセンブリの性質と目的を要約した短い説明を指定する文字列値。
AssemblyTitleAttribute アセンブリのフレンドリ名を指定する文字列値。 たとえば、 comdlg という名前のアセンブリには、Microsoft Common Dialog Control というタイトルが付いている場合があります。

厳密な名前属性

厳密な名前属性を使用して、アセンブリの厳密な名前を設定できます。 次の表では、厳密な名前属性について説明します。

厳密な名前属性 説明
AssemblyDelaySignAttribute 遅延署名が使用されていることを示すブール値。
AssemblyKeyFileAttribute 公開キー (遅延署名を使用する場合) またはこの属性のコンストラクターにパラメーターとして渡される公開キーと秘密キーの両方を含むファイルの名前を示す文字列値。 ファイル名は、ソース ファイル パスではなく、出力ファイル パス ( .exe または .dll) に対する相対パスであることに注意してください。
AssemblyKeyNameAttribute この属性のコンストラクターにパラメーターとして渡されるキー ペアを含むキー コンテナーを示します。

次のコード例は、遅延署名を使用して myKey.snk という公開キー ファイルを含む厳密な名前付きアセンブリを作成するときに適用する属性を示しています。

[assembly:AssemblyKeyFileAttribute("myKey.snk")];
[assembly:AssemblyDelaySignAttribute(true)];
[assembly:AssemblyKeyFileAttribute("myKey.snk")]
[assembly:AssemblyDelaySignAttribute(true)]
<Assembly:AssemblyKeyFileAttribute("myKey.snk")>
<Assembly:AssemblyDelaySignAttribute(True)>

こちらも参照ください