创建COM-Object时的异常

时间:2015-01-22 07:59:25

标签: c# com interop com-interop

我引用了一个Interop-Assembly,我用tlbimp.exe创建了它。 现在,当我从这个Interop-Assembly创建一个类的对象时,如

var allplanInstance = new AllplApplicationClass();

这适用于我的机器和一些客户机器。但在其他一些客户机器上,我会得到以下例外:

System.Runtime.InteropServices.COMException (0x80004005): 
Creating an instance of the COM component with CLSID {D8CFBF83-AFC7-11D2-A4F4-0000D1106F9C} from the IClassFactory failed due to the following error: 80004005.

我已检查注册表中是否注册了CLASS-ID {D8CFBF83-AFC7-11D2-A4F4-0000D1106F9C} - 所有机器都是这种情况。

我该怎么做才能找到出现此问题的原因?

感谢您的提示。

1 个答案:

答案 0 :(得分:0)

发生这种情况的一个常见原因是将这些类型的应用程序部署到64位计算机时。如果机器是64位,你必须在x86中构建调用C#应用程序。除此之外,COM dll必须使用位于Windows / SysWow64 /文件夹中的32位版本的regsvr32.exe进行注册。