簡単に言うと、この 2 つは完全に別の概念であり、残念ながら名前が似ています。
アプリケーション マニフェストは、PE バイナリ (マネージドまたはネイティブ) に埋め込まれた、または PE バイナリと共に配布された XML ファイルであり、SxS アセンブリの依存関係、必要な昇格、OS バージョンの互換性などについて OS ローダーに指示を与えます。
アセンブリ マニフェストは、マネージド アセンブリの依存関係、アセンブリを構成するファイル、アセンブリの公開キー、型エクスポート、CLR フラグなどを示す CLI アセンブリのセクションです。ILDASM.exe またはほとんどの .NET 逆コンパイラを使用して、アセンブリのマニフェストを調べることができます。
ECMA 335 (CLI 仕様) のセクション I.9.6 からの関連する抜粋:
マニフェスト: すべてのアセンブリには、アセンブリを構成するファイル、エクスポートされる型、およびアセンブリ内の型参照を解決するために必要な他のアセンブリを宣言するマニフェストがあります。CLI コンポーネントが CLI コンポーネントのメタデータを介して自己記述的であるように、アセンブリもマニフェストを介して自己記述的です。1 つのファイルがアセンブリを構成する場合、そのファイルには、アセンブリで定義された型を記述するメタデータと、アセンブリ自体を記述するメタデータの両方が含まれます。アセンブリにメタデータを含む複数のファイルが含まれている場合、各ファイルにはファイルで定義されている型が記述されており、これらのファイルの 1 つには、アセンブリを記述するメタデータも含まれています (他のファイルの名前、それらの暗号化ハッシュを含む)。 、およびそれらがアセンブリの外部にエクスポートする型)。
ご了承ください:
- すべてのマネージド アセンブリには、アセンブリ マニフェスト、実行可能ファイル、およびライブラリが必要です。
- すべてのネイティブ バイナリ、実行可能ファイル、およびライブラリには、アプリケーション マニフェストが含まれる場合があります。