Payload包含两个或多个具有相同目标路径的文件&Systems.Diagnostics.Tools.dll'

时间:2016-07-26 15:18:44

标签: visual-studio reference nuget uwp

在我将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项目。

8 个答案:

答案 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

中尝试以下操作
  1. 使用工具-> Nuget软件包管理器->管理解决方案的Nuget软件包更新Microsoft.NETCore.UniversalWindowsPlatform

  2. 工具-> Nuget程序包管理器->程序包管理器设置->清除所有Nuget缓存

  3. 删除以下文件:

<package Name>\bin\x86\Release
<package Name>\bin\x64\Release
<package Name>\bin\Arm\Release
  1. Build->每个版本的清洁解决方案,x86等版本

最后为我工作。如果仍然失败,则可以使用VS2017构建软件包。