我们正在将基于 MFC 的大型应用程序与少数托管 (.NET) 加载项集成在一起。与这些插件的通信是通过 COM 完成的。
从历史上看,我们只是使用注册表来使这些加载项(作为 COM 服务器)对应用程序可用。但是,现在我们正在尝试使用免注册 COM 互操作来执行此操作。
我们希望这些插件能够与应用程序运行所在的目录分开存放在一个单独的目录中——最好是在任何地方。但是,由于无法解析依赖程序集,我们显然遇到了服务器对象的实例化问题,这些程序集也存在于 COM 服务器 DLL 的目录中。
“老式”COM 互操作通过在加载目标程序集时使用 LoadFrom 上下文来处理此问题。但是激活上下文机制似乎并没有做到这一点。
有谁知道如何让它工作?目前尚不清楚我们是否可以在模块的 SxS list 中识别依赖程序集,或者我们是否可以以不同的方式创建激活上下文?
感谢您的任何想法/提示!
杰夫
最佳答案
希望我能理解这个问题,因为我不太熟悉 MFC 项目,也不是它的限制条件。一个“众所周知的”.NET 类有一个接口(interface)(在 MFC 应用程序中永久注册),然后处理所有的激活和实例化?
罗德尼
关于.net - 免注册 COM 互操作和相关程序集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1644779/