グローバル COM 登録を必要とせずに完全に分離して展開できるように、マニフェスト ファイルを使用するいくつかのアプリケーション (ネイティブ、.NET) があります。たとえば、dbgrid32.ocx com サーバーへの依存関係は、myapp.exe と同じフォルダーにある myapp.exe.manifest ファイルで次のように宣言されます。
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1">
<assemblyIdentity type="win32" name="myapp.exe" version="1.2.3.4" />
<dependency>
<dependentAssembly>
<assemblyIdentity type="win32" name="dbgrid32.ocx" version="5.1.81.4" />
</dependentAssembly>
</dependency>
</assembly>
dbgrid32.ocx は、独自の dbgrid32.ocx.manifest ファイルと共に同じフォルダーに展開されます。
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1">
<assemblyIdentity type="win32" name="dbgrid32.ocx" version="5.1.81.4" />
<file name="dbgrid32.ocx">
<typelib
tlbid="{00028C01-0000-0000-0000-000000000046}"
version="1.0"
helpdir=""/>
<comClass progid="MSDBGrid.DBGrid"
clsid="{00028C00-0000-0000-0000-000000000046}"
description="DBGrid Control" />
</file>
</assembly>
これはすべて正常に機能しますが、これらのマニフェスト ファイルを手動で維持するのは少し面倒です。これらのファイルを自動的に生成する方法はありますか? 理想的には、COM サーバー (ネイティブと .NET の両方) のリストに対するアプリケーションの依存関係を宣言し、残りを自動的に生成したいと考えています。出来ますか?