web-dev-qa-db-ja.com

ペイロードに、同じ宛先パス「System.Diagnostics.Tools.dll」を持つ2つ以上のファイルが含まれています

Nugetから2つのライブラリをプロジェクトに追加した後、次のエラーが表示されます。

Error       Payload contains two or more files with the same destination path 'System.Diagnostics.Tools.dll'. Source files: 
C:\Users\Horcrux7\.nuget\packages\runtime.any.System.Diagnostics.Tools\4.0.1\lib\netcore50\System.Diagnostics.Tools.dll
C:\Users\Horcrux7\.nuget\packages\System.Diagnostics.Tools\4.0.0\lib\netcore50\System.Diagnostics.Tools.dll App1            

このバージョンの競合を解決するにはどうすればよいですか?

非常に小さな単一のUWPプロジェクトしかありません。

14
Horcrux7

問題はそれを自己解決しました。 Microsoft.NETCore.UniversalWindowsPlatformを最新バージョンに更新することで解決しました。

ライブラリAはバージョン5.1.0に対してコンパイルされ、ライブラリBはバージョン5.2.2に対してコンパイルされたようです。私のプロジェクトはバージョン5.1.0を使用していたため、競合が発生しました。 UWPのバージョンを切り替えても競合が発生しない理由がわかりません。

ライブラリBを古いUWPバージョンで使用すると、競合も発生しませんでした。

13
Horcrux7

同じエラーが発生した他の人に役立つかもしれない場合に備えて-「ペイロードに同じ宛先パスを持つ2つ以上のファイルが含まれています...」-NuGetパッケージの迷路に関連するさまざまな理由が原因である可能性があります。そのようなNuGet関連のエラーは キャッシュをクリアする 、または単に問題のあるNuGetパッケージフォルダーを削除します:C:\ Users\user\.nuget\packages \

これは、この特定のエラーを含む同様のエラーに対処した私の自身の経験に基づいています。

編集(2018-07-22):Visual Studioを再起動するだけで、この問題や同様の問題に対処できるようになりました。おそらく、Microsoftはこのバグにようやく到達しているでしょう。この種の問題は、リリースバージョンをビルドするときにのみ発生します。

11
Hong

私の場合、「すべてのCPU」オプションを選択したので、両方のバージョンで同じライブラリをコンパイルしていました。 x64を選択すると、問題が解決しました。

5
Usman Afzal

Microsoft.EntityFrameworkCore.Sqliteを2.2.6にダウングレードし、問題を解決しました。

3
Roberto Filho

microsoft.EntityFrameworkCore.Sqliteバージョン3.1.2を更新すると問題が解決しました。

0
siva