发现无法解析的相同从属程序集的不同版本之间发生冲突。当日志详细程度设置为详细信息时,这些引用冲突会在构建日志中列出。
我将 Newtonsoft.Json 导入我的App.Core(便携式)项目后发生了。
查看输出后:
" 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)
我现在需要做什么?
答案 0 :(得分:7)
我通过将我的Newtonsoft.Json版本降级到8.0.3来解决了这个问题,这是最新版本,在构建时没有导致此错误。我不确定为什么这是修复。
答案 1 :(得分:7)
我通过更新Newtonsoft.Json包修复了它。
答案 2 :(得分:1)
Newtonsoft.Json依赖于比项目引用的更新版本的Microsoft.CSharp程序集。您可以删除对旧库的引用并添加较新的库。较新的可能在您的包目录中,您的解决方案,或者您可能能够获得NuGet包。就我而言,唯一依赖于旧版本CSharp库的引用本身就是如此,所以这样做没有任何害处。
答案 3 :(得分:1)
我能够通过将Microsoft.CSharp
NuGet包添加到我的项目来解决这个问题。以前我只是在项目引用下引用了Microsoft.CSharp程序集,但我没有使用NuGet来引入它。使用NuGet后,我的VSTS构建服务器上的消息就消失了。
答案 4 :(得分:1)
我的 Xamarin.Forms 项目(仅提供Android解决方案)遇到了这个问题。
修复很容易:直接将最新的Newtonsoft.Json链接到我的Android项目和共享库。
当我将一些依赖于Newtonsoft.Json旧版本的NuGet软件包与另一个不兼容的C#版本链接时,就会出现警告。
答案 5 :(得分:0)
这个问题是Newtonsoft.Json NuGet,在我发布警告之后 去吧。
可能是Windows 10的插件问题。
答案 6 :(得分:0)
回答这个问题可能有点晚了,但是发生这种情况的原因是,某些版本的NuGet客户端存在一个已知问题,当它们引用了这些构建包时,就会在Xamarin.iOS和Xamarin.Android项目中导致构建错误。错误消息将显示类似于
警告MSB3277:发现无法解决的相同从属程序集的不同版本之间存在冲突。将日志详细程度设置为“详细”时,这些参考冲突会在构建日志中列出。
要解决此问题,请从Xamarin.iOS和Xamarin.Android平台特定的项目中删除以下引用-离开程序包,只需从“引用”文件夹中删除引用即可。您应该能够在那时进行构建。
系统运行时
System.IO
System.Threading.Tasks
有关此错误的更多信息,请参见此MSDN blog post。
答案 7 :(得分:0)
我通过从我的 Android 特定 csproj 文件中删除 Microsoft.CSharp 引用来修复此警告。 Microsoft.CSharp 没有出现在我在 Visual Studio 解决方案资源管理器中的项目的 Android 特定包中,但对 CSharp 的引用在 Android .csproj 文件中。具体来说,我从我的 Android csproj 文件中删除了这一行:
composer install --ignore-platform-reqs
在错误(和修复)发生时,我的环境如下: