Windows应用商店中的TypeLoadException

时间:2014-05-13 21:52:12

标签: c# windows-store-apps typeloadexception winmd

我在Windows应用商店中使用Winmd(Windows运行时组件)。当我尝试实例化winmd中定义的类型时,我得到以下异常:

 System.TypeLoadException was unhandled by user code
  HResult=-2146233054
  Message=Requested Windows Runtime type 'SmartTech.BrokeredProxy.EnterpriseServer' is not   registered.
  Source=mscorlib
  TypeName=SmartTech.BrokeredProxy.EnterpriseServer
    InnerException: System.Runtime.InteropServices.COMException
       HResult=-2147221164
       Message=Class not registered (Exception from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG))
       ErrorCode=-2147221164
       InnerException: 

我添加了所有需要的引用,并在Manifest文件中进行了相应的更改。我错过了什么?任何人都知道是什么原因造成的?

1 个答案:

答案 0 :(得分:0)

对于非winrt应用程序,我知道此错误通常指向未注册的组件。 即 regsvr32 "path of the component"

但对于win 8应用程序,不确定它是否完全适用。

另一种情况,我遇到类似的问题是由于 32位/任何cpu冲突。

组件可能是32位组件,Visual Studio可能正在使用“任何CPU”进行编译。设置。尝试更改目标CPU'从项目属性到x86,看看是否出现问题。

<强> Project -> Properties -> Build tab -> Platform Target -> Any CPU to x86