Visual studio 有效负载包含两个或多个具有相同目标路径的文件';System.Diagnostics.Tools.dll';

Visual studio 有效负载包含两个或多个具有相同目标路径的文件';System.Diagnostics.Tools.dll';,visual-studio,reference,nuget,uwp,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\Syste

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

这个问题已经自行解决了。Microsoft.NETCore.UniversalWindowsPlatform最新版本的更新已解决此问题

看起来库A是针对版本5.1.0编译的,库B是针对版本5.2.2编译的。因为我的项目在5.1.0版上,所以出现了冲突情况。我不明白为什么切换UWP版本时没有冲突


如果我将库B与旧的UWP版本一起使用,也不会发生冲突。

只是为了防止其他人遇到相同的错误——“有效负载包含两个或多个具有相同目标路径的文件…”——这可能是由于与NuGet包迷宫相关的各种原因造成的,针对此类与NuGet相关的错误的一种补救方法是,或者简单地删除有问题的NuGet包文件夹:C:\Users\user\.NuGet\packages\

这是基于我自己处理类似错误的经验,包括这个特殊错误

编辑(2018-07-22)
通过简单地重新启动VisualStudio,我很幸运地解决了这个问题和类似的问题。也许微软终于找到了这个漏洞。我只有在构建发布版本时才会遇到这种问题。

在我的例子中,我选择了“任意CPU”选项,因此它为两个版本编译相同的库。选择x64为我解决了这个问题

我将Microsoft.EntityFrameworkCore.Sqlite降级到2.2.6,然后解决了问题。

更新Microsoft.EntityFrameworkCore.Sqlite版本3.1.2解决了我的问题。

对于
Default.rd.xml
,我从单元测试项目中删除了副本,然后可以运行我的测试。

您可以在
VS2019

  • 使用工具-->Nuget软件包管理器-->管理解决方案的Nuget软件包更新
    Microsoft.NETCore.UniversalWindowsPlatform

  • 工具-->Nuget包管理器-->包管理器设置-->清除所有Nuget缓存

  • 删除以下目录下的文件:

  • \bin\x86\Release
    \bin\x64\Release
    \bin\Arm\Release
    
  • 为每个版本、版本x86等构建-->清洁解决方案

  • 终于为我工作了。如果仍然失败,使用VS2017构建包可能会起作用。

    您是否引用了一些预发布的nuget包?我向两个不同的库添加了两个引用,这些库在不同的版本中再次编译。这应该不是什么异国情调。应该有一个通用的结构来解决这个冲突。也许你可以考虑降级一个你所引用的库。我看到了相同的错误参考System.Net.Sockets 4.1.0。但是,在降级到4.0.0之后,一切正常。不,降级是不可能的,因为旧版本与UWP不兼容。您觉得这个线程有用吗?这似乎不是一个好的解决方案,但对我有效。我也有同样的问题。相同的DLL。相同的5.1.0/5.2.2冲突。我感到惊讶的是,Visual Studio/nuget在安装/还原软件包时将Microsoft.NETCore.UniversalWindowsPlatform更新为5.2.2,却没有解决这个版本不匹配的问题。我也这么认为,这只是一个对我有帮助的问题,但我在路径上与软件包版本有所不同incompatibility@W0RT4当我构建一个UWP应用程序的发布版本。我现在只删除了C:\Users\user\.nuget\packages\microsoft.netcore.portable.compatibility,而且它总是有效的。我需要找到一个永久性的解决方案。尝试删除project.nuget.targets文件在我的情况下会有所帮助(我希望是永久性的)我在使用VS 2019版本16.2.3构建发布版本时遇到此错误,尽管所有参考的nuget包都是最新的。但我正在运行另一个项目,其中我有一个旧的nuget包。我关闭了那个项目,然后我就可以成功地创建包了。我是在一个Xamarin.Forms UWP项目发布版本中得到这个包的,遇到了类似的问题。当我尝试以x86的形式构建/运行时,项目属性构建部分选择了x64。乌斯曼指出,将这两个设置进行匹配,解决了这个问题。我在UWP和MVVM交叉上也遇到了这个问题。
    <package Name>\bin\x86\Release
    <package Name>\bin\x64\Release
    <package Name>\bin\Arm\Release