【发布时间】:2011-02-23 06:06:18
【问题描述】:
我想使用清单来指定对 COM 服务器的依赖 (reg-free COM)。
消费者应用程序在没有 COM 服务器的情况下大部分都可以正常工作 - 只有大约 1.7% 的功能使用 COM 服务器。因此,对于普通的旧 regsvr32,它会启动并正常工作,直到用户执行会触发 CoCreateInstance() 调用的操作,此时消费者会收到一条错误消息。
现在我已经玩了一段时间的清单,看起来除非它所依赖的 COM 服务器程序集存在于文件系统中,否则消费者甚至不会启动。这样不好。
我添加了具有以下内容的“附加清单”:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="TheComServer.X"
version="1.0.0.0"/>
</dependentAssembly>
</dependency>
</assembly>
有没有办法将无注册 COM 与清单一起使用并使依赖项成为可选 - 以便消费者程序启动并正常工作,直到实际调用 CoCreateInstance()?
【问题讨论】:
-
嘿,你发现了吗?这里同样的问题。这很烦人,如果依赖项不存在,应用程序根本不会运行,因为它是可选的(如插件或其他东西)。
-
@natenho 不,最终在没有明显依赖项的情况下工作。
标签: visual-studio visual-studio-2008 com manifest side-by-side