我引用了一个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} - 所有机器都是这种情况。
我该怎么做才能找到出现此问题的原因?
感谢您的提示。
答案 0 :(得分:0)
发生这种情况的一个常见原因是将这些类型的应用程序部署到64位计算机时。如果机器是64位,你必须在x86中构建调用C#应用程序。除此之外,COM dll必须使用位于Windows / SysWow64 /文件夹中的32位版本的regsvr32.exe进行注册。