私は Windows Phone 用のアプリを開発しており、テストを作成して実行するためのテスト プロジェクトもあります。これは正常に機能していましたが、突然、参照 System.Runtime.Serialization が見つからないというエラーが表示されます。
具体的には、エラーは次のとおりです。
System.IO.FileNotFoundException: ファイルまたはアセンブリ 'System.Runtime.Serialization, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e' またはその依存関係の 1 つを読み込めませんでした。
まず、2.0.5じゃなくて4.0でいいんじゃない?
System.Runtime.Serialization の 4.0 バージョンへの参照を追加しようとしましたが、エラーは次のようになりました。
System.IO.FileLoadException: ファイルまたはアセンブリ 'System.Runtime.Serialization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e' またはその依存関係の 1 つを読み込めませんでした。見つかったアセンブリのマニフェスト定義がアセンブリ参照と一致しません。
プロジェクト全体を調べて、この参照 (2.0.5) が定義されている場所を見つけて更新できるようにしましたが (どのように変更されたかはわかりません)、運がありませんでした。
問題がある場合はJSON.NETを使用しています(5.0.6)
2.0.5 であると想定されている場合、プロジェクトが誤ってまたは自動的に 4.0 に変更された可能性がある方法はありますか?
これは以前は機能していたので、何かが変わった、そしてそれは確かに私が意図的に行ったものではありません...
編集 上記のエラーを見た後、コードをもう一度見てみました。原因は、プロパティの 1 つに付けたこの属性にあるようです。
[JsonProperty(PropertyName="NameType")]
プロパティ名が JSON 内の名前と異なるためです。完全に実行されますが、テスト中に失敗します。コメントアウトすると、テストはパスします (ただし、アプリケーションはこのプロパティを取得できません)。
EDIT2: テストプロジェクトが標準の.net40をロードしている間、Windows PhoneにはWindows Phone JSON.NETバージョンがありますが、テストされているWindows Phoneアセンブリは電話バージョンを必要としているため、すべて混乱しています. ..
か何か。どういうわけか参照を台無しにしたような気がしますが、何がわかりません。
「ローカルのコピー」を true/false に設定し、Windows phone の JSON.NET 参照をテスト プロジェクトに追加しようとしましたが、バージョンが間違っていることがわかりました...
Windows Phone アセンブリをテストに使用するようにテスト プロジェクト (Windows Phone プロジェクトではない) に指示するにはどうすればよいですか? Windows Phone タイプなどの新しいテスト プロジェクトを作成する必要がありますか?
System.Runtime.Serialization ライブラリを使用する属性を追加するまで、すべてが完全に機能していました...