在我将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项目。
答案 0 :(得分:11)
问题已经解决了。对最新版本的Microsoft.NETCore.UniversalWindowsPlatform的更新已经解决了它。
看起来库A是针对版本5.1.0编译的,而库B是针对版本5.2.2编译的。因为我的项目是在5.1.0版本上,所以存在冲突情况。如果我切换UWP版本,我不明白为什么我没有冲突。
如果我使用旧的UWP版本的库B,也没有冲突。
答案 1 :(得分:8)
以防其他人遇到同样的错误可能有用 - “Payload包含两个或多个具有相同目标路径的文件......” - 这可能是由与NuGet包迷宫相关的各种原因引起的,对此类NuGet相关错误的一种补救方法是clearing the cache,或者只是删除有问题的NuGet包文件夹:C:\ Users \ user \ .nuget \ packages \
这是基于我自己处理类似错误的经验,包括这个错误。
编辑(2018-07-22): 通过简单地重新启动Visual Studio,我一直很好地处理这个和类似的问题。微软最终可能会遇到这个问题。我只在构建发布版本时遇到这种问题。
答案 2 :(得分:2)
就我而言,我选择了“ Any CPU”选项,因此它为两个版本都编译了相同的库。选择x64为我解决了这个问题。
答案 3 :(得分:1)
我将Microsoft.EntityFrameworkCore.Sqlite降级到2.2.6,然后解决了问题。
答案 4 :(得分:1)
我使用的是 Microsoft.NETCore.UniversalWindowsPlatform 版本 6.2.12
我的项目在 D:\
当我将项目移动到 C:\ 时问题解决了
虽然我不明白原因:( D:\ 处的路径是一个简短的全 ASCII 路径。
答案 5 :(得分:0)
更新Microsoft.EntityFrameworkCore.Sqlite版本3.1.2解决了我的问题。
答案 6 :(得分:0)
对于Default.rd.xml
,我从单元测试项目中删除了重复项,然后能够运行测试。
答案 7 :(得分:0)
您可以在VS2019
使用工具-> Nuget软件包管理器->管理解决方案的Nuget软件包更新Microsoft.NETCore.UniversalWindowsPlatform
工具-> Nuget程序包管理器->程序包管理器设置->清除所有Nuget缓存
删除以下文件:
<package Name>\bin\x86\Release
<package Name>\bin\x64\Release
<package Name>\bin\Arm\Release
最后为我工作。如果仍然失败,则可以使用VS2017构建软件包。