web-dev-qa-db-ja.com

同じ依存アセンブリの異なるバージョン間で解決できないエラーを発見しました

解決できなかった同じ依存アセンブリの異なるバージョン間で競合が見つかりました。これらの参照の競合は、ログの詳細度が詳細に設定されている場合、ビルドログにリストされます。

App.Core(Portable)プロジェクトにNewtonsoft.Jsonをインポートした後に発生しました。

出力を確認した後:

「Microsoft.CSharp、Version = 2.0.5.0、Culture = neutral、PublicKeyToken = b03f5f7f11d50a3a」と「Microsoft.CSharp、Version = 4.0.0.0、Culture = neutral、PublicKeyToken = b03f5f7f11d50a3a」との間に競合がありました。 TaskId:90)2> "Microsoft.CSharp、Version = 2.0.5.0、Culture = neutral、PublicKeyToken = b03f5f7f11d50a3a"はプライマリであるため選択され、 "Microsoft.CSharp、Version = 4.0.0.0、Culture = neutral、PublicKeyToken = b03f5f7f11d50a3a 「ではなかった。(TaskId:90)

今何をする必要がありますか?

15
gogo

Newtonsoft.Jsonのバージョンを8.0.3にダウングレードすることでこの問題を修正しました。これは、ビルド時にこのエラーを引き起こさない最新バージョンです。しかし、なぜこれが修正されたのかはわかりません。

7
Nick Kimbrough

Newtonsoft.Jsonパッケージを更新して修正しました。

7
Dpedrinha

これを修正するには、Microsoft.CSharp NuGetパッケージをプロジェクトに追加しました。以前は、プロジェクト参照の下にMicrosoft.CSharpアセンブリへの参照がありましたが、NuGetを使用してプルしませんでした。NuGetを使用した後、VSTSビルドサーバー上のメッセージはなくなりました。

1
pwhe23

Newtonsoft.Jsonは、プロジェクトが参照しているものよりも新しいバージョンのMicrosoft.CSharpアセンブリに依存しています。古いライブラリへの参照を削除して、新しいライブラリを追加できます。新しい方がソリューションのパッケージディレクトリにあるか、NuGetパッケージを取得できる場合があります。私の場合、CSharpライブラリの古いバージョンに依存していた唯一の参照はそれ自体であったため、これを行っても害はありませんでした。

1
Nick Bauer

問題は、Newtonsoft.Json NuGetです。彼のバージョンをダウンさせた後、警告が出ます。

おそらくWindows 10のプラグインの問題です。

0
gogo

おそらくこれに答えるのは少し遅れますが、これは、これらのビルドパッケージへの参照があるときにXamarin.iOSおよびXamarin.Androidプロジェクトでビルドエラーを引き起こす既知の問題がNuGetクライアントの特定のバージョンにあるために発生します。エラーメッセージには次のようなメッセージが表示されます

警告MSB3277:解決できなかった同じ依存アセンブリの異なるバージョン間の競合が見つかりました。ログの冗長性が詳細に設定されている場合、これらの参照の競合はビルドログにリストされます。

この問題を解決するには、Xamarin.iOSおよびXamarin.Androidプラットフォーム固有のプロジェクトから次の参照を削除します。パッケージをそのままにして、参照フォルダーから参照を削除します。その時点でビルドできるはずです。

  • System.Runtime

  • System.IO

  • System.Threading.Tasks

このエラーの詳細については、こちらをご覧ください MSDNブログ投稿

0
FreakyAli