Visual Studio Android解决方案在使用MSBuild时遇到C#版本冲突时停止构建

Visual Studio Android解决方案在使用MSBuild时遇到C#版本冲突时停止构建,c#,visual-studio,msbuild,visual-studio-2017,C#,Visual Studio,Msbuild,Visual Studio 2017,该解决方案在Visual Studio 2017中构建良好 MSBuild将生成以下警告: C:\Program Files(x86)\Microsoft Visual Studio\2017\Professional\MSBuild\15.0\Bin\Microsoft.Common.CurrentVersion.targets(2106,5):警告MSB3277:在“Microsoft.CSharp”的不同版本之间发现无法解决的冲突。当“日志详细性”设置为“详细”时,这些引用冲突将列在生成日

该解决方案在Visual Studio 2017中构建良好

MSBuild将生成以下警告:

C:\Program Files(x86)\Microsoft Visual Studio\2017\Professional\MSBuild\15.0\Bin\Microsoft.Common.CurrentVersion.targets(2106,5):警告MSB3277:在“Microsoft.CSharp”的不同版本之间发现无法解决的冲突。当“日志详细性”设置为“详细”时,这些引用冲突将列在生成日志中

警告后会出现几行,但从那里它会停止,并没有任何进展

实际的引用冲突如下所示:

“Microsoft.CSharp,版本=2.0.5.0,区域性=中性,PublicKeyToken=b03f5f7f11d50a3a”与“Microsoft.CSharp,版本=4.0.0.0,区域性=中性,PublicKeyToken=b03f5f7f11d50a3a”之间存在冲突。(任务编号:123) 4> 选择“Microsoft.CSharp,版本=2.0.5.0,区域性=中性,PublicKeyToken=b03f5f7f11d50a3a”是因为它是主版本,而未选择“Microsoft.CSharp,版本=4.0.0.0,区域性=中性,PublicKeyToken=b03f5f7f11d50a3a”。(任务编号:123) 4> 依赖于“Microsoft.CSharp,Version=2.0.5.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a”[C:\Program Files(x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE\ReferenceAssemblies\Microsoft\Framework\MonoAndroid\v1.0\Microsoft.CSharp.dll]的引用。(任务编号:123) 4> C:\Program Files(x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE\ReferenceAssembly\Microsoft\Framework\MonoAndroid\v1.0\Microsoft.CSharp.dll(任务ID:123) 4> 项目文件项包括导致引用“C:\Program Files(x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE\ReferenceAssembly\Microsoft\Framework\MonoAndroid\v1.0\Microsoft.CSharp.dll”的项目。(任务编号:123) 4> Microsoft.CSharp(任务ID:123) 4> 依赖于“Microsoft.CSharp,版本=4.0.0.0,区域性=中性,PublicKeyToken=b03f5f7f11d50a3a”[]的引用。(任务编号:123) 4> C:\Users\laniganr.nuget\packages\newtonsoft.json\10.0.3\lib\netstandard1.3\newtonsoft.json.dll(任务ID:123)

错误之后会显示另外几行,但不会超过这一点

台词:

_XamarinandroidBuildarRestore: 引用已合并资源,由于以下原因跳过:obj\ReleaseNuget\XbdMerge\Xamarin.GooglePlayServices.Bas emment.dll.stamp 引用已合并资源,由于以下原因跳过:obj\ReleaseNuget\XbdMerge\Xamarin.GooglePlayServices.Tas ks.dll.stamp 引用已合并了资源,正在跳过,原因是:obj\ReleaseNuget\XbdMerge\Xamarin.Firebase.Common.dll.st 放大器 引用已合并了资源,正在跳过,原因是:obj\ReleaseNuget\XbdMerge\Xamarin.Firebase.Iid.dll.stamp 引用已合并了资源,正在跳过,原因是:obj\ReleaseNuget\XbdMerge\Xamarin.Firebase.Messaging.dll .邮票 _ResolveLibraryProjectImports: 正在跳过目标“\u ResolveLibraryProjectImports”,因为所有输出文件都是输入文件的最新版本 . _BuildLibraryImportsCache: 正在跳过目标“\u BuildLibraryImportsCache”,因为所有输出文件相对于输入文件都是最新的

Visual Studio Android解决方案在使用MSBuild时遇到C#版本冲突时停止构建

这是因为
Xamarin.Android
项目中明确引用了
Microsoft.CSharp 2.0.5.0
,而库
newtonsoft.json 10.0.3
中的
netstandard
库项目中引用了
Microsoft.CSharp 4.3.0

在构建日志中,您可以在以下消息中找到引用包
newtonsoft.json
的项目:

C:\Users\xxxxx\packages\newtonsoft.json\10.0.3\lib\netstandard1.3\newtonsoft.json.dll (任务编号:123)

然后检查包
newtonsoft.json\10.0.3\lib\netstandard1.3
的依赖性:

要解决此问题,可以尝试将
Newtonsoft.Json
更新到
11.0.1
及更高版本。这是因为
netstandard 2.0
的此版本的
Newtonsoft.Json
包与
Microsoft.CSharp
没有依赖关系

或者,您可以删除
Microsoft.CSharp 2.0.5
,并允许使用Nuget中的版本

您可以参考类似的线程,了解更多详细信息


希望这有帮助。

此问题有任何更新吗?你解决这个问题了吗?如果没有,你能告诉我关于这个问题的最新信息吗?