【发布时间】:2018-05-18 16:52:10
【问题描述】:
我有一个在 Windows 上使用 VS2017 (15.7.1) 的 Xamarin.Forms (2.5.1.527436) 应用程序。 android 项目在调试下构建并运行良好。但是,当我在 release 下构建时,出现以下错误:
严重性代码描述项目文件行抑制状态 错误“LinkAssemblies”任务意外失败。 Mono.Linker.MarkException: 错误处理方法: 'System.Void Xamarin.Forms.Pages.BaseDataSource/d__22::MoveNext()' in assembly: 'Xamarin.Forms.Pages.dll' ---> Mono.Cecil.ResolutionException : 无法解析 System.Void Xamarin.Forms.Log::Warning(System.String,System.String) 在 Mono.Linker.Steps.MarkStep.HandleUnresolvedMethod(MethodReference 参考) 在 Mono.Linker.Steps.MarkStep.MarkMethod(MethodReference 参考) 在 Mono.Linker.Steps.MarkStep.MarkInstruction(指令指令) 在 Mono.Linker.Steps.MarkStep.MarkMethodBody(MethodBody 主体) 在 Mono.Linker.Steps.MarkStep.ProcessMethod(MethodDefinition 方法) 在 Mono.Linker.Steps.MarkStep.ProcessQueue() --- 内部异常堆栈跟踪结束 --- 在 Mono.Linker.Steps.MarkStep.ProcessQueue() 在 Mono.Linker.Steps.MarkStep.ProcessPrimaryQueue() 在 Mono.Linker.Steps.MarkStep.Process() 在 Mono.Linker.Steps.MarkStep.Process(LinkContext 上下文) 在 Mono.Linker.Pipeline.Process(LinkContext 上下文) 在 MonoDroid.Tuner.Linker.Process(LinkerOptions 选项,ILogger 记录器,LinkContext& 上下文) 在 Xamarin.Android.Tasks.LinkAssemblies.Execute(DirectoryAssemblyResolver res) 在 Xamarin.Android.Tasks.LinkAssemblies.Execute() 在 Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute() 在 Microsoft.Build.BackEnd.TaskBuilder.d__26.MoveNext() IRMobile.Android C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\Xamarin\Android\Xamarin.Android.Common.targets 1812
我正在链接“仅 Sdk 程序集”,最低 android 版本为 5.1(22 级),目标 Android 版本为 8.1(27 级)
有什么想法吗?
【问题讨论】:
-
请参考this。
-
感谢@JoeLv-MSFT 的链接。这使我朝着正确的方向前进。我发现我的问题是一个不必要的 NuGet 包,它显然正在加载相同的程序集。再次感谢!
标签: android xamarin.forms xamarin.android linker