该解决方案在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”,因为所有输出文件都相对于输入文件而言是最新的。
答案 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
的依赖性:
要解决此问题,您可以尝试将newtonsoft.json
更新到newtonsoft.json\10.0.3\lib\netstandard1.3
及更高版本。这是因为此版本的Newtonsoft.Json
的{{1}}软件包与11.0.1
无关。
或者,您可以删除Newtonsoft.Json
并允许使用Nuget中的那个。
希望这会有所帮助。