【发布时间】:2011-09-15 10:35:35
【问题描述】:
我在位置 A 运行的 .Net 客户端中使用 Activation Context API 在位置 B 中加载无 reg 的 COM 组件(与 A 完全不同的位置,而不是同一台机器上的兄弟/后代等) ) 在 WS2008 上通过在 ACTCTX 中的位置 B 传递,它工作正常。
但是,我现在需要对另一个 COM dll 执行相同的操作,而后者又依赖于位于完全不同位置的几个 .Net COM 程序集。
我已将依赖的 .Net 程序集添加到清单中,并将清单和 COM dll 放在位置 B,但我必须将依赖的 .Net 程序集放在位置 A(客户端运行的位置)以使其工作。实际上,他们将生活在与位置 A 和位置 B 完全不同的目录中。
我正在尝试做的事情是否可行,即是否可以使用激活上下文 api 在不同的不相关目录中加载多个 COM 组件?
【问题讨论】:
-
非常怀疑,激活上下文中唯一的 .NET 意识是清单中的
<clrClass>元素。听起来好像不适用。 GAC 或 AppDomain.AssemblyResolve 是解决方法。在 regfree COM 中不使用本地部署通常是一个错误。 -
甚至可以在同一个目录下完成吗?
-
您可以附加到应用程序域的 AssemblyResolve 事件并按需加载 dll,无论从哪个位置
标签: com side-by-side regfreecom activation-context-api