我已成功使用免注册COM将COM组件加载到我的.Net流程中。突然之间发生了一些变化(我在午餐时出现,看起来似乎是:-))并且加载过程已停止工作。
在我的COM组件正确加载之前,现在我收到了FileNotFoundException。
运行ProcMon来探索发生了什么,我发现加载器正在注册表中查找CLSID,并发现组件已经注册。然后它查看注册的路径,并发现dll不在那里。
当我使用免注册COM配置它时,有人能告诉我为什么加载器会去注册表寻找组件吗?我认为清单优先于注册表,但我找不到任何关于此的文档。
答案 0 :(得分:0)
事实证明,罪魁祸首是Visual Studio Hosting process。当涉及到这一点时,您的应用程序的清单文件(指定COM依赖项)无法读取。
因此,简单的解决方法是disable the hosting process。