2

私にはすべてがはっきりしているわけではないので、ここにいる誰かが答えを知っていることを願っています。「任意の CPU」のソースから構築された C# Json.Net と C# HtmlAgilityPack を使用しています。これらの両方に、Metro で使用できないように見えるアセンブリを参照する using ディレクティブが含まれていることに気付きましたが、どちらも正常にビルドされます。

それらを参照すると、アプリがアンマネージ コードにサンクするということですか?

管理されていないコードにサンクが発生する正確な原因は何ですか?

WinRT で使用できないアセンブリを DLL が参照できるのに、アプリが使用できないのはなぜですか?

これは Windows ストアの承認プロセスに失敗しますか?

アプリに含める必要がある DLL の一般的なルールは何ですか?

前もって感謝します!

4

2 に答える 2

4

WinRT を対象とするアプリを開発する場合、アプリは Windows 8 WinRT で利用可能な API のみを使用する必要があります。API は WinMD ファイルで定義されています。アプリがデスクトップ API を使用していた場合、Windows ストアの承認プロセスで拒否されます。

このシナリオを想像してみてください。デスクトップ モード (クライアント プロファイル) の .NET DLL を使用する WinRT アプリを開発しました。アプリは Windows ストアに展開され、ユーザーはそれを ARM タブレットにダウンロードします。ARM デバイスにデスクトップ (クライアント) .NET DLL がないため、アプリケーションはクラッシュします。

そのため、WinRT 用のアプリを開発する際に使用できる .NET クラスについて質問します。記事http://kishore1021.wordpress.com/2012/08/06/what-is-portable-class-library-project-in-visual-studio-2012-net-4-5/に、利用可能な .NET クラスがリストされています。 WinRT アプリケーション開発用。

于 2012-09-03T21:47:13.527 に答える
0

すべてのオープン ソース プロジェクトの依存関係を変更して、WinRT をターゲットにします。コードがコンパイルされないために WinRT の一部のメソッド/クラスが欠落しているかどうかを確認します。代替メソッド/クラスを見つけてみてください。

List.FindAll() など、Linq Where() に変更

于 2012-09-03T07:27:58.583 に答える