我在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文件中进行了相应的更改。我错过了什么?任何人都知道是什么原因造成的?
答案 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
强>