Xamarin iOS - 无法加载文件或程序集System.Threading.Tasks'在启动时

时间:2015-05-04 07:46:36

标签: xamarin

我刚升级到Xamarin studio 5.9(build 431),无法再运行我的项目了。它适用于一个干净的项目。

当我运行我的应用程序时,我甚至都没有登陆Main。

Xamarin工作室中的应用程序输出打印了一堆装配加载。它到达MobileClientiOS.app/Newtonsoft.Json.dll [External],然后崩溃并输出以下内容:

  

无法加载文件或程序集System.Threading.Tasks'或其中一个   依赖。该系统找不到指定的文件。   System.AppDomain.Load中的(System.IO.FileNotFoundException)   (System.Reflection.AssemblyName assemblyRef,   System.Security.Policy.Evidence assemblySecurity)[0x00081] in   ... / mono / mcs / class / corlib / System / AppDomain.cs:706 at   System.AppDomain.Load(System.Reflection.AssemblyName assemblyRef)   [0x00000]在... / mono / mcs / class / corlib / System / AppDomain.cs:674 at   System.Reflection.Assembly.Load(System.Reflection.AssemblyName   assemblyRef)[0x00000] in   ... / mono / mcs / class / corlib / System.Reflection / Assembly.cs:551 at   ObjCRuntime.Runtime.CollectReferencedAssemblies   (System.Collections.Generic.List 1个程序集,   System.Reflection.Assembly assembly)[0x00019] in   ... / maccore / src / ObjCRuntime / Runtime.cs:218 at   ObjCRuntime.Runtime.CollectReferencedAssemblies   (System.Collections.Generic.List 1个程序集,   System.Reflection.Assembly assembly)[0x0002c] in   ... / maccore / src / ObjCRuntime / Runtime.cs:220 at   ObjCRuntime.Runtime.CollectReferencedAssemblies   (System.Collections.Generic.List 1个程序集,   System.Reflection.Assembly assembly)[0x0002c] in   ... / maccore / src / ObjCRuntime / Runtime.cs:220 at   ObjCRuntime.Runtime.RegisterEntryAssembly(System.Reflection.Assembly   entry_assembly)[0x0001b] in   ... / maccore / src / ObjCRuntime / Runtime.cs:200 at   ObjCRuntime.Runtime.RegisterEntryAssembly(IntPtr a)[0x00000] in   ... / maccore / src / ObjCRuntime / Runtime.cs:158 at   ObjCRuntime.Runtime.register_entry_assembly(IntPtr程序集)   [0x00000]在... / maccore / runtime / Delegates.generated.cs中:118 at   (包装器本机到托管)   ObjCRuntime.Runtime:register_entry_assembly(intptr)2015-05-04

     

MobileClientiOS [77830:1943120]批评:获得了SIGABRT   执行本机代码。这通常表明该致命错误   单声道运行时或应用程序使用的本机库之一。

对于漫长的堆栈跟踪感到抱歉,但我没有想法。我们正在使用PCL,但在Xamarin Studio升级之前还没有问题。

谢谢!

编辑: 我降级了Xamarin.iOS并重新开始工作。似乎失败的程序集(现在可以使用旧版本):

  

/MobileClientiOS.app/System.Xml.Linq.dll [外部]

如何使用最新版本运行?我不知道。

1 个答案:

答案 0 :(得分:17)

为了猜测,我认为这可能与Xamarin Bug 29211具有相同的根本原因。

如果这是真的,那么同样的解决方法很有可能会起作用:

在“项目选项 - > iOS构建 - >其他mtouch参数”下添加:

  

-linkskip = System.Threading.Tasks

如果该解决方法确实有效,那么很可能在即将发布的服务版本中修复该问题(将于本周晚些时候发布)。

2015年7月2日更新

事实证明System.Threading.Tasks存在问题的另一个微妙不同的常见原因。第二个bug最初是由Bug 29211隐藏的,因为这两个bug非常相似。现在正在Xamarin Bug 31560中跟踪第二个问题。请注意,此错误仅影响模拟器构建,并且具有相当简单的解决方法,因此其严重性较小。