VS2010:在.NET 2项目中使用COM

问题描述:

我有一个需要使用COM组件(特别是Redemption)的.NET 2.0项目。在Visual Studio 2010中,我添加了对COM DLL的引用,就像我在之前的所有VS版本中一样(右键单击项目 - >添加引用 - > COM选项卡 - >选择产品 - >确定)。当我建立并尝试运行我不断收到以下错误应用:VS2010:在.NET 2项目中使用COM

Creating an instance of the COM component with CLSID {29AB7A12-B531-450E-8F7A-EA94C2F3C05F} from the IClassFactory failed due to the following error: 80004005.

我没有多少运气搞清楚什么是了这个错误。

我已经验证应用程序正在运行的计算机是否有通过regsvr32.exe注册的COM DLL。

我能想到的唯一的事情是,这与Visual Studio 2010导入COM组件的方式有所不同(可能吗?)比以前的版本有所不同?任何方向都会非常有帮助。

在此先感谢。

编辑:用于实例化COM类的代码。

RDOSession session = new RDOSessionClass();

+0

你可以发布你用来实例化COM对象并调用它的代码吗?另外,你有没有检查过的COM实现DLL的权限,并确保该应用程序正在运行的帐户有权访问该DLL? – Zippit 2010-08-23 14:21:24

+0

@Zippit添加了我用来实例化COM对象的代码。我认为重要的是要注意,在IDE从VS 2005升级到VS2010之前,这和我做到这一点是一样的。该应用程序在用户环境下运行,恰好是本机的本地管理员。 – Adam 2010-08-23 15:31:59

这是E_FAIL, “未指定的错误”。这是一个完全无用的错误代码,但对于COM服务器并不罕见。程序员走了一条捷径,找不到更好的错误代码,并且不想创建自己的错误代码。它与互操作库有什么关系是非常令人怀疑的,你从来没有达到实际使用它的地步。

也许某种COM服务器需要的配置,可能是安装问题。但这些只是野蛮的猜测。最终,您可能需要来自组件供应商或作者的帮助来克服这个麻烦。

+0

啊,得爱。这比你想象的更有帮助。在另一台机器上运行应用程序正在运行,因此看起来确实与机器/配置相关。 – Adam 2010-08-23 15:59:41