【发布时间】:2018-01-13 04:39:21
【问题描述】:
我有一个跨平台 Xamarin Forms 项目,在 Android 或 Windows Mobile 上运行时运行良好。
现在我需要在 iOS 上运行它,但在 iPhone 模拟器上启动应用程序时出现异常:
“System.TypeLoadException:无法从程序集 'XamarinMO, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' 加载类型 'XamarinMO.Services.DataServices'。”
异常发生在代码的早期,在 iOS AppDelegate on LoadApplication(new App());:
public partial class AppDelegate : global::Xamarin.Forms.Platform.iOS.FormsApplicationDelegate
{
public override bool FinishedLaunching(UIApplication app, NSDictionary options)
{
global::Xamarin.Forms.Forms.Init();
LoadApplication(new App()); -- <<*** EXCEPTION THROWN HERE ***
ServicePointManager
.ServerCertificateValidationCallback +=
(sender, cert, chain, sslPolicyErrors) => true;
return base.FinishedLaunching(app, options);
}
我无法使用调试器单步执行代码,堆栈跟踪就像巧克力壶一样有用。
该异常似乎与我的 DataServices 类中的代码无关,因为执行甚至没有进展那么远。我的 DataServices 类似乎甚至没有被实例化 - 当我在 DataServices 构造函数的第一行放置一个断点时,执行甚至没有到达那里。这向我表明问题与类本身的代码无关(在各种 Android 和 Windows Mobile 设备上都可以正常工作)
【问题讨论】:
-
您的链接器行为是否设置为全部链接?
-
>> "您的链接器行为是否设置为全部链接" 是。
-
尝试将其设置为仅链接 SDK 程序集,看看这是否会有所作为。
-
@Milen。我已经试过了。
标签: ios xamarin xamarin.forms typeloadexception