Xamarin Forms 更新到 3.1 后 "LinkAssemblies" 任务意外失败
The "LinkAssemblies" task failed unexpectedly after Xamarin Forms update to 3.1
我最近将我的解决方案从 Xamarin Forms 2.5 更新到 3.1。我已经在不同的应用程序(UWP、IOS、Android)上安装了包 Prism.DryIoc.Forms 7.0.0.396。自从使用 UWP 更新后,一切都按预期进行,但是当我尝试启动我的 Android 项目时,出现此错误:
Severity Code Description Project File Line Suppression State
Error The "LinkAssemblies" task failed unexpectedly.
Mono.Linker.MarkException: Error processing method: 'System.Void Prism.DryIoc.PrismApplication::RegisterRequiredTypes(Prism.Ioc.IContainerRegistry)' in assembly: 'Prism.DryIoc.Forms.dll' ---> Mono.Cecil.ResolutionException: Failed to resolve System.Void DryIoc.Registrator::Register(DryIoc.IRegistrator,DryIoc.IReuse,DryIoc.Made,DryIoc.Setup,DryIoc.IfAlreadyRegistered,System.Object)
at Mono.Linker.Steps.MarkStep.HandleUnresolvedMethod(MethodReference reference)
at Mono.Linker.Steps.MarkStep.MarkMethod(MethodReference reference)
at Mono.Linker.Steps.MarkStep.MarkInstruction(Instruction instruction)
at Mono.Linker.Steps.MarkStep.MarkMethodBody(MethodBody body)
at Mono.Linker.Steps.MarkStep.ProcessMethod(MethodDefinition method)
at Mono.Linker.Steps.MarkStep.ProcessQueue()
--- End of inner exception stack trace ---
at Mono.Linker.Steps.MarkStep.ProcessQueue()
at Mono.Linker.Steps.MarkStep.ProcessPrimaryQueue()
at Mono.Linker.Steps.MarkStep.Process()
at Mono.Linker.Steps.MarkStep.Process(LinkContext context)
at Mono.Linker.Pipeline.Process(LinkContext context)
at MonoDroid.Tuner.Linker.Process(LinkerOptions options, ILogger logger, LinkContext& context)
at Xamarin.Android.Tasks.LinkAssemblies.Execute(DirectoryAssemblyResolver res)
at Xamarin.Android.Tasks.LinkAssemblies.Execute()
at Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute()
at Microsoft.Build.BackEnd.TaskBuilder.<ExecuteInstantiatedTask>d__26.MoveNext() AllyNations.Android C:\Program Files (x86)\Microsoft Visual Studio17\Community\MSBuild\Xamarin\Android\Xamarin.Android.Common.targets 1812
我以前从未接触过 LinkAssemblies。我的 Android 选项中的链接设置为 none。我的 MainActivity.cs (Android) 和 App.xaml.cs 中的代码没有更改并且是正确的。
丹·西格尔回答了这个问题:
This issue is caused by your changing major versions. For now you'll need to roll back to 2.X, we'll be updating to DryIoc 3 soon
我最近将我的解决方案从 Xamarin Forms 2.5 更新到 3.1。我已经在不同的应用程序(UWP、IOS、Android)上安装了包 Prism.DryIoc.Forms 7.0.0.396。自从使用 UWP 更新后,一切都按预期进行,但是当我尝试启动我的 Android 项目时,出现此错误:
Severity Code Description Project File Line Suppression State
Error The "LinkAssemblies" task failed unexpectedly.
Mono.Linker.MarkException: Error processing method: 'System.Void Prism.DryIoc.PrismApplication::RegisterRequiredTypes(Prism.Ioc.IContainerRegistry)' in assembly: 'Prism.DryIoc.Forms.dll' ---> Mono.Cecil.ResolutionException: Failed to resolve System.Void DryIoc.Registrator::Register(DryIoc.IRegistrator,DryIoc.IReuse,DryIoc.Made,DryIoc.Setup,DryIoc.IfAlreadyRegistered,System.Object)
at Mono.Linker.Steps.MarkStep.HandleUnresolvedMethod(MethodReference reference)
at Mono.Linker.Steps.MarkStep.MarkMethod(MethodReference reference)
at Mono.Linker.Steps.MarkStep.MarkInstruction(Instruction instruction)
at Mono.Linker.Steps.MarkStep.MarkMethodBody(MethodBody body)
at Mono.Linker.Steps.MarkStep.ProcessMethod(MethodDefinition method)
at Mono.Linker.Steps.MarkStep.ProcessQueue()
--- End of inner exception stack trace ---
at Mono.Linker.Steps.MarkStep.ProcessQueue()
at Mono.Linker.Steps.MarkStep.ProcessPrimaryQueue()
at Mono.Linker.Steps.MarkStep.Process()
at Mono.Linker.Steps.MarkStep.Process(LinkContext context)
at Mono.Linker.Pipeline.Process(LinkContext context)
at MonoDroid.Tuner.Linker.Process(LinkerOptions options, ILogger logger, LinkContext& context)
at Xamarin.Android.Tasks.LinkAssemblies.Execute(DirectoryAssemblyResolver res)
at Xamarin.Android.Tasks.LinkAssemblies.Execute()
at Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute()
at Microsoft.Build.BackEnd.TaskBuilder.<ExecuteInstantiatedTask>d__26.MoveNext() AllyNations.Android C:\Program Files (x86)\Microsoft Visual Studio17\Community\MSBuild\Xamarin\Android\Xamarin.Android.Common.targets 1812
我以前从未接触过 LinkAssemblies。我的 Android 选项中的链接设置为 none。我的 MainActivity.cs (Android) 和 App.xaml.cs 中的代码没有更改并且是正确的。
丹·西格尔回答了这个问题:
This issue is caused by your changing major versions. For now you'll need to roll back to 2.X, we'll be updating to DryIoc 3 soon