Tenho alguns aplicativos (alguns nativos, alguns .NET) que usam arquivos de manifesto para que possam ser implantados de forma totalmente isolada , sem exigir nenhum registro COM global. Por exemplo, a dependência do servidor dbgrid32.ocx com é declarada da seguinte maneira no arquivo myapp.exe.manifest, que fica na mesma pasta que myapp.exe:
<?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>
O dbgrid32.ocx é implantado na mesma pasta, junto com seu próprio arquivo 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>
Tudo isso funciona bem, mas manter esses arquivos de manifesto manualmente é um pouco chato. Existe uma maneira de gerar esses arquivos automaticamente? Idealmente, gostaria apenas de declarar a dependência do aplicativo em uma lista de servidores COM (nativos e .NET) e, em seguida, deixar o resto ser gerado automaticamente. É possível?