Xamarin ios,sqlite在表

时间:2016-03-17 00:37:33

标签: ios sqlite xamarin xamarin.ios

当我尝试在sqlite中创建一个表时,应用程序失败了,因为我要创建的表没有列,奇怪的是我还创建了8个表,这些表工作正常而没有错误,我有正在阅读一些帖子,其中一篇说如果我将构建选项更改为" Link SDK Frameworks只会有效,但问题是当我这样做时会发生这种情况:

  

/Users/MacDeveloper/Documents/MDC/FrontEnd/MDC.Presentation.IOS/MTOUCH:   错误MT2002:无法解决   " System.Configuration.ApplicationSettingsBase"参考来自"系统,   Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089"   (MT2002)(MDC.Presentation.IOS)

我将链接行为更改为Link all但我收到相同的错误,同样在Dont Link中我收到以下错误:

  

/Users/MacDeveloper/Documents/MDC/FrontEnd/MDC.Presentation.IOS/MTOUCH:   错误MT3001:无法对装配进行AOT操作   ' /Users/MacDeveloper/Documents/MDC/FrontEnd/MDC.Presentation.IOS/obj/iPhone/Debug/mtouch-cache/64/Build/MDC.Business.dll'   (MT3001)(MDC.Presentation.IOS)

错误中的dll来自导入到项目的另一个库,该库是使用Visual Studio创建的。

这个问题有解决方案吗?

1 个答案:

答案 0 :(得分:1)

这是因为您的某些程序集是根据MS .NET框架完整桌面配置文件编译的。

这不是Xamarin产品附带的产品。 BCL是一个名为 mobile 的子集,针对大小进行了优化。这会删除一些类型,如ball.moveball()(命名空间和程序集)。

您的第一个错误表明程序集正在使用不存在的类型

  

System.Configuration.ApplicationSettingsBase

并且程序集完全限定名称以

开头
  

系统,版本= 4.0.0.0

这不是Xamarin发布的版本,它将是System.Configuration与Silverlight使用的版本相同的版本(原始移动配置文件所基于的版本)。

您的第二个错误可能类似,但会在稍后阶段发生(因为您禁用了链接器)。在这种情况下,AOT编译器会看到对不存在的方法的调用,并且根本无法生成正确的代码。

解决方案是针对Xamarin SDK程序集(产品附带的BCL)或Xamarin支持的其中一个PCL配置文件重建代码。