1

頭を悩ませていましたが、Json.Net の現在のビルドは Metro/Store アプリでは動作しないことがわかりました。

ライブラリの Net40 バージョンへの参照を含めましたが、参照を次のように追加できないというコンパイル エラーが発生し続けました。

「プロジェクトは '.NetCore' をターゲットにしていますが、ファイルはターゲット '.NetFramework' を参照しています。これはサポートされているシナリオではありません。」

そこで、VS2012 で標準フォーム ベースの VB.net アプリを作成しようとしましたが、Json.Net が完全にインポートされました。

この問題は、.Netcore で利用できないように見えるSystem.ComponentModel.PropertyDescriptorを中心にしているようです。

アップデート:

Json.net のポータブル バージョンを追加しようとしましたが、アプリをビルドしようとすると次のエラーが発生しました。

CA0001 コード分析の実行エラー CA0001: Rule=Microsoft.Reliability#CA2002, Target=Jobs.Store.MainPage.#JobView_Respond(Jobs.Store.WebViewResponse): モジュール 'Jobs.Store' の読み取り中に次のエラーが発生しました: 解決できませんでしたメンバー参照: [Newtonsoft.Json, Version=4.5.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed]Newtonsoft.Json.JsonConvert::SerializeObject. [エラーと警告] (グローバル)

ジェームズ・ニュートン・キングがここでかなり活発に活動しているように見えるので、これを取り上げてくれることを願っています ;-)

それ以外では、Metro アプリで JSON をシリアライズするのは非常に難しいと感じています。

乾杯、

ロイ

4

1 に答える 1

2

同じ問題が発生しましたが、ライブラリの実際の WinRT ビルドを取得することで解決しました。Web 上のどこにも言及されていないようですが、最新のビルド (執筆時点) を入手すると、次のようになります。

http://json.codeplex.com/releases/view/97986

/Bin 内に WinRT フォルダーがあります。そこにある DLL を参照すると、起動して実行できるようになります。

編集: JSON.NET はかなりまともな仕事をしますが、ライブラリを開発していて、依存関係を追加したくないと判断しました。また、過去にバージョンの競合の問題があったため、SimpleJson に切り替えました (github の SimpleJson.net ではありません)。これは 1 つのクラスにすぎず、シリアル化が必要な場合は非常に優れています。NuGet から入手できます

Install-Package SimpleJson
于 2013-01-13T22:15:23.700 に答える