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: 

必要な参照をすべて追加し、マニフェスト ファイルに適切な変更を加えました。私は何か見落としてますか?誰もがこれを引き起こす原因を知っていますか?

4

1 に答える 1

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

于 2014-05-13T22:16:46.800 に答える