2

我正在尝试通过 CoGetObject 方法启动 .NET 对象,如 MSDN 上的COM Elevation Moniker文章中所述。我开始使用 Vista Bridge 代码,然后偶然发现了一个较旧的示例,该示例显示了一些已连接的位。在这一点上,我试图弄清楚为什么当调用通过此方法时会抛出 FileNotFoundException:

var result = UnsafeNativeMethods.CoGetObject(monikerName, ref bindingOptions, interfaceId);

该异常仅在显示同意提示后引发,这很奇怪。如果有帮助,我正在使用 Windows 7 x64 机器并发布了我的峰值的完整来源

我在这里遗漏了什么可能导致 FileNotFoundException 被抛出?

4

2 回答 2

0

您是否使用 /tlb 开关运行 RegAsm.exe 以导出和注册 COM 服务器的类型库?没有注册类型库可能会导致 FileNotFoundException。

于 2011-05-12T21:45:18.313 回答
0

这不是直接的答案,但您可以使用RunElevatedNet C# 示例项目尝试在提升的项目中启动您的 COM 服务器。调查在非提升模式下是否也发生相同的 FileNotFoundException 错误可能有助于调试您的问题。

于 2019-10-28T11:01:58.523 回答