マニフェストファイルを使用するアプリケーション(ネイティブ、.NET)があり、グローバルCOM登録を必要とせずに完全に分離して展開できます。たとえば、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の両方)のリストに対するアプリケーションの依存関係を宣言し、残りを自動的に生成させたいと思います。出来ますか?