我们使用清单文件来进行免费注册的COM,正如我在另一个问题中所阐述的那样。
现在我们尝试在支持插件的应用程序中使用免注册COM。插件是OCX文件,可以在主应用程序安装后添加到主应用程序的文件夹中。
但是,这意味着主应用程序的清单文件需要由插件安装程序修补。这似乎是一件危险且容易出错的事情,尤其是如果可以安装多个插件的话。
是否有办法以某种方式拆分主应用程序的清单文件,以便每个插件都可以安全地将自己的部分作为一个单独的文件添加?还是另一种安全的方法来修补清单文件?
如果是相关的话:我们使用维克斯创建安装程序。
发布于 2009-12-01 09:57:50
我不建议修改应用程序的清单文件;这看起来相当脆弱,只有当它驻留在可写的位置时才能工作。
在进程启动时,应用程序的清单用于生成一个“激活上下文”,该上下文作为全流程激活上下文推送。但是每个线程也有一个激活上下文堆栈,可以直接操作。在寻找COM注册数据时,给定线程上的操作同时查看堆栈上的最顶层上下文和进程范围内的激活上下文。
建议是,任何时候插件代码都需要调用COM,应该在线程上激活特定于插件的清单。这可以通过以下两种方式中的一种很容易做到:
发布于 2012-09-27 12:52:22
如果您使用的是.Net,您可以使用这个答案中所示的代码来处理激活上下文。
https://stackoverflow.com/questions/1770463
复制相似问题