当Windows窗体应用程序正常时,无法从控制台应用程序创建COM对象

时间:2011-04-11 06:11:29

标签: .net com com-interop

我尝试从.Net Framework 4.0控制台和Windows窗体应用程序创建相同的COM对象实例。

 var t = Type.GetTypeFromProgID("MyProgID");
 dynamic req = Activator.CreateInstance(t);

我的控制台应用程序告诉我:

System.Runtime.InteropServices.COMException (0x80040154): Retrieving the COM cla
ss factory for component with CLSID {CF2D8AF3-287C-4107-8790-D37F169E2475} faile
d due to the following error: 80040154 Class not registered (Exception from
HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)).

Windows窗体应用程序创建实例,没有例外。

这里有什么不妥?

在这两种情况下,我都将[STAThread]属性应用于“Program”类。

1 个答案:

答案 0 :(得分:1)

我找到了这个问题。

COM对象仅适用于x86环境。 虽然我的Windows窗体应用程序仅为x86构建,但我的控制台是“任何CPU”,它在x64环境中提供了错误。

在我为控制台应用程序更改Platform Target后,一切正常。