使用MSBuild

时间:2018-09-14 18:03:09

标签: 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”无法解决。将日志详细程度设置为“详细”时,这些参考冲突会在构建日志中列出。

警告后会出现几行,但是从那里停下来,根本没有进展。

实际的参考冲突在这里:

  

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

错误发生后,还会显示其他几行,但从此以后都不会继续。

说行:

  

_XamarinAndroidBuildAarRestore:     参考已经合并了资源,由于以下原因而被跳过:obj \ ReleaseNuget \ XbdMerge \ Xamarin.GooglePlayServices.Bas     ement.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     。邮票   _ResolveLibraryProject导入:   跳过目标“ _ResolveLibraryProjectImports”,因为所有输出文件都相对于输入文件是最新的   。   _BuildLibraryImportsCache:   跳过目标“ _BuildLibraryImportsCache”,因为所有输出文件都相对于输入文件而言是最新的。

1 个答案:

答案 0 :(得分:1)

  

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

那是因为,当Microsoft.CSharp 2.0.5.0库项目中的Xamarin.Android来自库{{1}时,对Microsoft.CSharp 4.3.0.0的引用是明确的}}。

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

  

C:\ Users \ xxxxx \ packages \ newtonsoft.json \ 10.0.3 \ lib \ netstandard1.3 \ Newtonsoft.Json.dll   (TaskId:123)

然后检查软件包newtonsoft.json 10.0.3的依赖性:

enter image description here

要解决此问题,您可以尝试将newtonsoft.json更新到newtonsoft.json\10.0.3\lib\netstandard1.3及更高版本。这是因为此版本的Newtonsoft.Json的{​​{1}}软件包与11.0.1无关。

或者,您可以删除Newtonsoft.Json并允许使用Nuget中的那个。

有关更多详细信息,您可以参考类似的线程herehere

希望这会有所帮助。

相关问题