并排COM的局限性是什么?

时间:2010-08-09 08:09:50

标签: windows visual-studio com clickonce side-by-side

我们需要通过ClickOnce调整我们的应用程序。该应用程序包含一个.exe文件和一大堆Visual C ++库,其中一些是其他库使用的进程内COM服务器。

目前我们的安装程序会regsvr32注册COM服务器,但看起来ClickOnce应用程序在安装过程中不允许修改注册表。所以我们还需要别的东西。

选项一是删除CoCreateInstance(),而是使用LoadLibraryEx() / DllGetClassObject()。这将需要修改代码,但非常可靠 - 我认为没有任何理由说明这不起作用。

选项二是使用并列COM激活清单。我立即看到的问题是我们在每个每晚构建中增加版本号,因此我们必须自动更新清单。那不是很鼓舞人心。使用并行COM激活的其他不那么明显的限制是什么?

1 个答案:

答案 0 :(得分:1)

并排COM的优势在于它可以在不更改任何代码的情况下解决您的问题 - 可以将并行COM改装为一组现有的COM组件。

缺点:

  • 并排不是一种广泛使用的技术(在诸如VC ++运行时库和Windows公共控件之类的几个组件之外,它们不使用COM),并且需要花费一些精力来查找故障排除信息。网络
  • 如果您使用的是XP或Server 2003,那么当出现问题时,您无法获得操作系统的帮助。特别是,XP在事件日志中提供了误导性消息; 2k3更好。 Vista及以上版本为您提供 sxstrace 工具。
  • 您需要与组件本身并行维护清单文件。在许多方面,清单文件都复制了类型库中已有的信息。虽然您可以手动维护它们(它们是具有相当简单模式的XML文件),但您可能希望每次进行构建时都重新生成它们。这样可以解决版本控制问题。