.net - 免注册 COM 互操作和相关程序集

标签 .net com interop regfreecom sxs

我们正在将基于 MFC 的大型应用程序与少数托管 (.NET) 加载项集成在一起。与这些插件的通信是通过 COM 完成的。

从历史上看,我们只是使用注册表来使这些加载项(作为 COM 服务器)对应用程序可用。但是,现在我们正在尝试使用免注册 COM 互操作来执行此操作。

我们希望这些插件能够与应用程序运行所在的目录分开存放在一个单独的目录中——最好是在任何地方。但是,由于无法解析依赖程序集,我们显然遇到了服务器对象的实例化问题,这些程序集也存在于 COM 服务器 DLL 的目录中。

“老式”COM 互操作通过在加载目标程序集时使用 LoadFrom 上下文来处理此问题。但是激活上下文机制似乎并没有做到这一点。

有谁知道如何让它工作?目前尚不清楚我们是否可以在模块的 SxS list 中识别依赖程序集,或者我们是否可以以不同的方式创建激活上下文?

感谢您的任何想法/提示!

杰夫

最佳答案

希望我能理解这个问题,因为我不太熟悉 MFC 项目,也不是它的限制条件。一个“众所周知的”.NET 类有一个接口(interface)(在 MFC 应用程序中永久注册),然后处理所有的激活和实例化?

罗德尼

关于.net - 免注册 COM 互操作和相关程序集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1644779/

相关文章:

C# 如何将流重定向到控制台 Out?

asp.net - 自 MS14-059 以来,System.Web.MVC 未复制到 bin 文件夹中。如何防止由于 Windows 更新而创建缺少 DLL 的构建?

c# - 为什么 BeforeFieldInit 行为在 .NET 4 中发生了变化?

c# - 原生 64 位 dll 的 32 位 Dll 包装器

c# - 通过 .NET 确定现有的本地 Windows 帐户

c# - 为什么我们不能使用密封类作为通用约束?

azure - 是否可以在azure webjob部署期间注册一些COM组件?

.net - 在 VB6 中订阅 C# .net 事件

c# - 获取应用程序ID

c++ - 直接从 C++ 调用 D 函数