C/C++ プログラムのマニフェスト生成についての理解
マニフェストは、XML ドキュメントです。これは、外部 XML ファイルにすることも、アプリケーションまたはアセンブリにリソースとして埋め込むこともできます。 分離アプリケーションのマニフェストは、アプリケーションが実行時にバインドする共有 side-by-side アセンブリの名前およびバージョンの管理に使用されます。 side-by-side アセンブリのマニフェストは、そのアセンブリの名前、バージョン、リソース、および他のアセンブリへの依存関係を指定します。
分離アプリケーションまたは side-by-side アセンブリのマニフェストを作成するには、2 つの方法があります。 まず、アセンブリの作成者が、規則および名前付けの要件に従って手動でマニフェスト ファイルを作成できます。 また、プログラムが CRT、MFC、ATL などの Visual C++ アセンブリのみに依存する場合は、リンカーによってマニフェストを自動的に生成できます。
Visual C++ ライブラリのヘッダーにはアセンブリ情報が含まれているため、ライブラリがアプリケーション コードにインクルードされると、このアセンブリ情報は、リンカーによって最終的なバイナリのマニフェストが形成される際に使用されます。 リンカーは、マニフェスト ファイルをバイナリに埋め込みません。常に外部ファイルとしてマニフェストを生成します。 マニフェストが外部ファイルであることは、すべてのシナリオにとって適しているとは限りません。 たとえば、プライベート アセンブリでは、埋め込みマニフェストを使用することが推奨されます。 nmake を使用してコードをビルドするようなコマンド ライン ビルドの場合は、マニフェスト ツールを使用してマニフェストを埋め込むことができます。詳細については、「コマンド ラインでのマニフェスト生成」を参照してください。 Visual Studio でビルドする場合は、[プロジェクトのプロパティ] ダイアログでマニフェスト ツールのプロパティを設定して、マニフェストを埋め込むことができます。詳細については、「Visual Studio でのマニフェスト生成」を参照してください。
参照
概念
分離アプリケーションおよび side-by-side アセンブリの概念