2011-10-11 7 views
14

私はcnetで書かれたメトロスタイルのアプリで.net apisの一部とすべてのwinrt apisにアクセスできることを理解しています。 しかし、.net 2.0や3.5などをターゲットとする他のサードパーティのコンポーネントについては、 メトロスタイルアプリプロジェクトの参照として追加することはできますか?メトロスタイルのアプリで従来のアセンブリを使用

答えて

9

はい、メトロアプリケーションからサードパーティの.NETアセンブリを参照できます。それらはアプリと同じフォルダに配置し、サポートされているAPIのみを使用する必要があります。

私は1つのクラスで.NETライブラリを作成し、それをメトロアプリケーションから使用しました。次の警告が表示されます:The project 'EmptyLib' cannot be referenced.しかし、アプリケーションがビルドされ、私はそれをデバッグし、デバッガで自分のクラスのインスタンスを探索することができました。

次に、Windows App Certificationに合格しようとしました。それは失敗した(下記の詳細を参照)。

を渡したコンパイラの最適化を有効にした後。


初めて失敗した理由は、サポートされていないAPIを使用したライブラリでした。詳細:

エラー:このアプリケーションは、サポートされているAPIチェックに失敗しました。

  • MSCORLIBでAPI System.Runtime.CompilerServices.CompilationRelaxationsAttribute、なPublicKeyToken = B77A5C561934E089は、このアプリケーションの種類はサポートされていません。 EmptyLib.dllはこのAPIを呼び出します。

  • MSCORLIBの#ctor(System.Int32)、PUBLICKEYTOKEN = B77A5C561934E089は、このアプリケーションタイプではサポートされていません。 EmptyLib.dllはこのAPIを呼び出します。

修正されていない場合の影響:アプリケーションがWindows SDK for MetroスタイルのAppsにない1つ以上のAPIを使用しています。サポートされていないAPIを使用すると、Windowsストアポリシーに違反し、ユーザーエクスペリエンスに悪影響を及ぼし、システム全体の安定性を阻害する可能性があります。

修正方法:修正が必要な正確なAPIについては、上記のエラーメッセージ2をご覧ください。使用するAPIのサポートされているリストについては、Windows SDK for Metro style Appsを参照してください。

+5

ライブラリ作成者がライブラリをデスクトップとMetroの両方で使用できるようにするには、「ポータブルライブラリ」プロジェクトを使用して、普遍的にサポートされているAPIのみを使用する必要があります。 –

+1

も参照してくださいhttp://msdn.microsoft.com/en-us/library/windows/apps/br230301(v=VS.85).aspx#KnowTheRules –

関連する問題