创建 COM 对象时出现异常
Exception when creating COM-Object
我引用了一个使用 tlbimp.exe 创建的互操作程序集。
现在,当我从这个 Interop-Assembly 创建一个 class 的对象时,比如
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} 是否已在注册表中注册 - 所有机器都是这种情况。
我该怎么做才能找到这个问题的原因?
感谢您的提示。
发生这种情况的一个常见原因是将这些类型的应用程序部署到 64 位计算机时。如果机器是 64 位的,则必须在 x86 中构建调用 C# 应用程序。除此之外,必须使用 Windows/SysWow64/ 文件夹中的 32 位版本 regsvr32.exe 注册 COM dll。
我引用了一个使用 tlbimp.exe 创建的互操作程序集。 现在,当我从这个 Interop-Assembly 创建一个 class 的对象时,比如
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} 是否已在注册表中注册 - 所有机器都是这种情况。
我该怎么做才能找到这个问题的原因?
感谢您的提示。
发生这种情况的一个常见原因是将这些类型的应用程序部署到 64 位计算机时。如果机器是 64 位的,则必须在 x86 中构建调用 C# 应用程序。除此之外,必须使用 Windows/SysWow64/ 文件夹中的 32 位版本 regsvr32.exe 注册 COM dll。