Xamarin.forms 在App.xaml.cs中调用基构造函数(PrismApplication构造函数)时出错

Xamarin.forms 在App.xaml.cs中调用基构造函数(PrismApplication构造函数)时出错,xamarin.forms,prism,Xamarin.forms,Prism,我希望在以下方面能得到一些帮助 我已经使用Prism表单启动了Xamarin表单应用程序 我使用模板包在VisualStudio(Windows)中创建了该项目 该项目构建正常,但当我尝试在Mac上的模拟器中运行它时,我在应用程序启动后立即调用PrismApplication类的基本构造函数时出错。请参阅下面的错误消息和堆栈跟踪。提前谢谢 软件包版本 Prism.Ninject.Forms版本:7.0.0.168-pre(也尝试了Unity.Forms的相同版本) Xamarin.Forms版

我希望在以下方面能得到一些帮助

我已经使用Prism表单启动了Xamarin表单应用程序

我使用模板包在VisualStudio(Windows)中创建了该项目

该项目构建正常,但当我尝试在Mac上的模拟器中运行它时,我在应用程序启动后立即调用PrismApplication类的基本构造函数时出错。请参阅下面的错误消息和堆栈跟踪。提前谢谢

软件包版本

  • Prism.Ninject.Forms版本:7.0.0.168-pre(也尝试了Unity.Forms的相同版本)
  • Xamarin.Forms版本:2.4.0.282
错误消息:此平台不支持操作

来源:System.Reflection.Emit.Lightweight

堆栈跟踪:

在:0中的System.Reflection.Emit.DynamicMethod..ctor(System.String名称,System.Type returnType,System.Type[]参数类型,System.Boolean restrictedSkipVisibility)[0x00006]处 在0中的Ninject.Injection.DynamicMethodInjectorFactory.Create(System.Reflection.ConstructorInfo构造函数)[0x00005]处 在0中的Ninject.Planning.Strategies.ConstructorReflectionStrategy.Execute(Ninject.Planning.IPlan计划)[0x0005c]处 在Ninject.Planning.Planner+c__显示类9_0.b_0(Ninject.Planning.Strategies.iplanningstrategys)[0x00000]中:0 在Ninject.Infrastructure.Language.ExtensionsForIEnumerableSoft.Map[T](System.Collections.Generic.IEnumerable
1[T]系列,System.Action
1[T]Action)[0x00010]中:0 在0中的Ninject.Planning.Planner.CreateNewPlan(System.Type类型)[0x00053]处 在0中的Ninject.Planning.Planner.GetPlan(System.Type类型)[0x00026]处 在0中的Ninject.Activation.Providers.StandardProvider.Create(Ninject.Activation.IContext上下文)[0x00053]处 在0中的Ninject.Activation.Context.ResolveInternal(System.Object作用域)[0x00034]处 在0中的Ninject.Activation.Context.Resolve()[0x00073]处 在0中的Ninject.KernelBase.Resolve(Ninject.Activation.IRequest请求,System.Boolean handleMissingBindings)[0x00144]处 在0中的Ninject.KernelBase.Resolve(Ninject.Activation.IRequest请求)[0x00000]处 在Ninject.ResolutionExtensions.GetResolutionIterator(Ninject.Syntax.IResolutionRoot,System.Type服务,System.Func
2[T,TResult]约束,System.Collections.Generic.IEnumerable
1[T]参数,System.Boolean等参数,System.Boolean唯一)[0x0002f]in:0 在Ninject.ResolutionExtensions.Get[T](Ninject.Syntax.IResolutionRoot,System.String名称,Ninject.Parameters.ipParameter[]Parameters)[0x0000d]中:0 位于:0中的Prism.Ninject.PrismApplication.CreateNavigationService()[0x00010] 在Prism.PrismApplicationBase
1[T]处,在0中初始化()[0x0004d]
在Prism.PrismApplicationBase上
1[T]。在0中初始化内部()[0x00006] 在Prism.PrismApplicationBase
1[T]…ctor(Prism.IPlatformInitializer
1[T]初始值设定项)[0x00031]中:0 在:0中的Prism.Ninject.PrismApplication.get_Logger()[0x00000]处 在MyProject.App..ctor(Prism.Ninject.IPlatformInitializer初始值设定项)[0x00000]的/Users/Tomas/Projects/MyProject/MyProject/MyProject/App.xaml.cs:23中 在MyPrtuo.IO.AppDeaveT.FiSSHeDebug(UIKIT.UIAPP应用程序,基础.NS字典选项)[0x09007]中/用户/ TAMAS/Studio/MyStudio/MyStudio/MyPosio.IOS/AppDealt.cs:24 在(包装器管理为本机)UIKit.UIApplication:UIApplicationMain(int,string[],intptr,intptr) 在/Users/builder/data/lanes/5489/c4240f3f/source/xamarin macios/src/UIKit/UIApplication.cs:79中的UIKit.UIApplication.Main(System.String[]args,System.IntPtr principal,System.IntPtr delegate)[0x00005] 在/Users/builder/data/lanes/5489/c4240f3f/source/xamarin macios/src/UIKit/UIApplication.cs:63中的UIKit.UIApplication.Main(System.String[]args,System.String principalClassName,System.String delegateClassName)[0x00038]处
在MyProject.iOS.Application.Main(System.String[]args)[0x00001]in/Users/Tomas/Projects/MyProject/MyProject/MyProject.iOS/Main.cs:17

虽然我不确定是什么原因导致了您在这里提到的异常,但这确实导致在Prism 7 preview 5中发现了Prism.Ninject.Forms的许多问题,特别是围绕ContainerExtension旋转。这些问题现已修复,从MyGet上的7.0.0.340-ci版本开始可用。

您能否澄清您使用的是Prism.Unity.Forms还是Prism.Ninject.Forms?Oops!对不起,我应该澄清一下。我最初在使用Ninject.Forms时出错。后来我改为Unity.Forms,但收到了相同的错误。我会更新我的问题以澄清任何困惑。嗨,丹。您或团队是否已确认此处是否存在问题,或者更可能是我的设置?谢谢我不能重复你的问题。我确实看到了Ninject的另一个问题。我建议现在使用Ninject以外的容器并清理/删除输出(obj/bin)文件夹。确定。谢谢你,丹。我决定按照你在StackOverflow上的另一篇文章中的建议使用DryIoc。我可能首先尝试使用Prism模板从头开始创建一个新项目,看看是否有类似的问题。感谢您的回复——Prism团队不是应该在度假吗!;-)