C# 带有自定义控件的XAML页面上的Xamarin.Forms iOS崩溃
我正在从事一个Xamarin.Forms项目,最近我将该项目的共享项目从PCL升级到了.NETStandard 此时,我遇到了来自几个UI XAML文件的构建问题,错误如下: 未能解析程序集:“MyAssembly,版本0.0.0.0, 区域性=中性,PublicKeyToken=空' 发现问题文件是引用自定义XAML控件的文件。在网上找到几个有类似问题的人后,我最终发现我可以通过将这些页面的C# 带有自定义控件的XAML页面上的Xamarin.Forms iOS崩溃,c#,ios,xamarin,xamarin.forms,visual-studio-mac,C#,Ios,Xamarin,Xamarin.forms,Visual Studio Mac,我正在从事一个Xamarin.Forms项目,最近我将该项目的共享项目从PCL升级到了.NETStandard 此时,我遇到了来自几个UI XAML文件的构建问题,错误如下: 未能解析程序集:“MyAssembly,版本0.0.0.0, 区域性=中性,PublicKeyToken=空' 发现问题文件是引用自定义XAML控件的文件。在网上找到几个有类似问题的人后,我最终发现我可以通过将这些页面的xamlcompileationoptions从Compile设置为Skip来解决这个问题。该项目现在为
xamlcompileationoptions
从Compile
设置为Skip
来解决这个问题。该项目现在为iOS和Android构建
Android版本正常工作,但是当其中一个页面尝试加载时,由于自定义控件的存在,iOS版本崩溃,出现以下错误:
Xamarin.Forms.Xaml.XamlParseException…未输入shared.SharedControl
在xlmns clr命名空间中找到:
有人遇到过这个问题吗?如果有,你解决了吗?这是代码问题还是Xamarin/Visual Studio Mac的bug
理想情况下,我不想将这些页面的
xamlcompliationoptions
设置为Skip
,但不管怎样,我都不明白为什么它会影响iOS而不会影响Android。首先,XamlCompilationOptions.Compile
意味着在构建应用程序时为类或项目编译XAML。而XamlCompilationOptions.Skip
则在设备上运行应用程序时执行相同的操作
此外,我建议您可以执行以下步骤:
PS:有一个关于的链接,您需要在使用该程序集之前加载该程序集。在
Xaml
上,它不加载,只需尝试访问,如果没有加载,就会崩溃。在使用它之前,您需要通过调用方法或创建对象来加载程序集
应该有一个
Init
方法用于程序集初始化东西。你应该打电话给它。我打赌如果你在android上使用proguard,它的链接会和ios linker一样好,你也会在android上崩溃。跳过是一种解决方法,而不是解决方案。您最好解决迁移后出现的主要问题。在你的问题中没有足够的信息。谢谢,我通过链接迁移了它。这在Android方面没有任何问题,只针对iOS。谢谢,这个链接是我用来升级到.NET标准的指南。你可以访问链接了解更多信息。第2步似乎为我解决了这个问题。我搬走了;assembly=xxx来自引用共享控件的所有XAML视图文件,它起作用了。谢谢谢谢,我认为Init()方法应该是InitializeComponent(),这是页面构造函数中调用的第一个方法。在进一步阅读之后,我向共享控件类添加了一个静态Init()方法,并从AppDelegate.cs调用它,但是在我的例子中,这并没有解决问题。