0

我已经成功地使用免注册 COM 将 COM 组件加载到我的 .Net 进程中。突然有些事情发生了变化(当我出去吃午饭时,似乎:-))并且加载过程停止了工作。

而在我的 COM 组件正确加载之前,现在我得到了 FileNotFoundException。

运行ProcMon来探索是怎么回事,我发现加载器正在注册表中查找 CLSID,并发现组件已经注册。然后它查看注册的路径,发现 dll 不存在。

谁能告诉我,当我使用免注册 COM 配置加载程序时,为什么加载程序会去注册表查找组件?我假设清单优先于注册表,但我找不到任何关于此的文档。

4

1 回答 1

0

事实证明,罪魁祸首是Visual Studio Hosting 进程。当涉及到这个时,您的应用程序的清单文件(它指定 COM 依赖项)不会被读取。

因此,简单的解决方法是禁用托管进程

于 2012-09-12T13:39:10.807 回答