У меня есть некоторые приложения (некоторые из них, некоторые из .NET), которые используют файлы манифеста, поэтому их можно развернуть в полной изоляции , не требуя какой-либо глобальной регистрации COM. Например, зависимость от сервера dbgrid32.ocx com объявлена следующим образом в файле myapp.exe.manifest, который находится в той же папке, что и 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>
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), а затем позволить автоматически сгенерировать остальные. Является ли это возможным?