Xamarin Forms更新到3.1后,“ LinkAssemblies”任务意外失败

时间:2018-07-09 14:58:14

标签: android xamarin.forms inversion-of-control prism dryioc

我最近将我的解决方案从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 Studio\2017\Community\MSBuild\Xamarin\Android\Xamarin.Android.Common.targets    1812    

我以前从未处理过LinkAssemblies。我的Android选项中的链接设置为“无”。我的MainActivity.cs(Android)和App.xaml.cs中的代码未更改且正确。

1 个答案:

答案 0 :(得分:0)

Dan Siegel回答了:

  

此问题是由您更改的主要版本引起的。现在,您需要回滚到2.X,我们将很快更新到DryIoc 3