静的または動的に関係なく、すべてのアセンブリには、アセンブリ内の要素が相互に関連する方法を記述するデータのコレクションが含まれています。 アセンブリ マニフェストには、このアセンブリ メタデータが含まれています。 アセンブリ マニフェストには、アセンブリのバージョン要件とセキュリティ ID を指定するために必要なすべてのメタデータと、アセンブリのスコープを定義し、リソースとクラスへの参照を解決するために必要なすべてのメタデータが含まれています。 アセンブリ マニフェストは、共通中間言語 (CIL) コードを含む PE ファイル ( .exe または .dll) またはアセンブリ マニフェスト情報のみを含むスタンドアロン PE ファイルに格納できます。
次の図は、マニフェストを格納するさまざまな方法を示しています。
1 つの関連付けられたファイルを持つアセンブリの場合、マニフェストは PE ファイルに組み込まれ、単一ファイル アセンブリが形成されます。 マルチファイル アセンブリは、スタンドアロン マニフェスト ファイルを使用するか、マニフェストをアセンブリ内の PE ファイルのいずれかに組み込んで作成できます。
各アセンブリのマニフェストは、次の関数を実行します。
アセンブリを構成するファイルを列挙します。
アセンブリの型とリソースへの参照が、その宣言と実装を含むファイルにどのようにマップされるかを制御します。
アセンブリが依存している他のアセンブリを列挙します。
アセンブリのコンシューマーとアセンブリの実装の詳細の間の間接参照のレベルを提供します。
アセンブリを自己記述型でレンダリングします。
アセンブリ マニフェストの内容
次の表に、アセンブリ マニフェストに含まれる情報を示します。 最初の 4 つの項目(アセンブリ名、バージョン番号、カルチャ、厳密な名前情報)は、アセンブリの ID を構成します。
情報 | 説明 |
---|---|
[アセンブリ名] | アセンブリの名前を指定するテキスト文字列。 |
バージョン番号 | メジャー バージョン番号とマイナー バージョン番号、およびリビジョン番号とビルド番号。 共通言語ランタイムは、これらの番号を使用してバージョン ポリシーを適用します。 |
文化 | アセンブリがサポートするカルチャまたは言語に関する情報。 この情報は、カルチャまたは言語固有の情報を含むサテライト アセンブリとしてアセンブリを指定する場合にのみ使用してください。 (カルチャ情報を含むアセンブリは、自動的にサテライト アセンブリと見なされます)。 |
厳密な名前情報 | アセンブリに厳密な名前が付けられた場合の発行元の公開キー。 |
アセンブリ内のすべてのファイルの一覧 | アセンブリに含まれる各ファイルのハッシュとファイル名。 アセンブリを構成するすべてのファイルは、アセンブリ マニフェストを含むファイルと同じディレクトリに存在する必要があることに注意してください。 |
型参照情報 | 宣言と実装を含むファイルに型参照をマップするためにランタイムによって使用される情報。 これは、アセンブリからエクスポートされる型に使用されます。 |
参照されるアセンブリに関する情報 | アセンブリによって静的に参照される他のアセンブリの一覧。 各参照には、依存アセンブリの名前、アセンブリ メタデータ (バージョン、カルチャ、オペレーティング システムなど)、およびアセンブリが厳密な名前の場合は公開キーが含まれます。 |
コード内のアセンブリ属性を使用して、アセンブリ マニフェスト内の情報を追加または変更できます。 バージョン情報と情報属性 (商標、著作権、製品、会社、情報バージョンなど) を変更できます。 アセンブリ属性の完全な一覧については、「アセンブリ属性の 設定」を参照してください。
こちらも参照ください
.NET