2

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

4

1 回答 1

0

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

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

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

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

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

于 2014-05-13T22:16:46.800 回答