Xamarin iOS无法AOT程序集Microsoft.EntityFrameworkCore.Migrations.Migration

时间:2019-10-29 05:31:43

标签: ios xamarin xamarin.forms xamarin.ios mono

我们已将迁移添加到我们的xamarin表单项目中,此后我们就无法将其部署到iOS设备上。它可以在模拟器上正常运行,但在部署到设备时会因AOT错误而失败。

这似乎是一个在网络上广泛传播的话题,但是到目前为止,没有一个想法有所作为。我们正在使用EntityFrameworkCore v2.2.6和xamarin.forms v4.1.0。

我已经尝试添加-v -v -v以获得有关构建日志的更多详细信息,但仍然可以得到:

Error       Could not AOT the assembly '/Users/MyUser/Library/Caches/Xamarin/mtbs/builds/MyCompany.Mobile.iOS/8fcd0a31c7f6e1a671890e2462fe729f/obj/iPhone/Debug/mtouch-cache/3-Build/MyCompany.Data.Persistence.dll'    MyCompany.Mobile.iOS    

有什么想法我还应该尝试什么?

2 个答案:

答案 0 :(得分:2)

我还没有尝试过,但是可以解决您的问题

  • IOS构建->常规->并取消选中“增量构建”选项。
  • 禁用LLVM。
  • 从您的MyCompany.Data.Persistence.dll中删除所有不必要的类和方法,以免产生繁琐的代码。
  • 更改链接以链接所有装配体

答案 1 :(得分:1)

Xamarin.Android应用程序使用链接器来减小大小

默认值为 SdkOnly

:将不会尝试链接。

SdkOnly :仅在基类库上执行链接,而不在用户的程序集上进行链接。

完全:链接将在基类库和用户程序集上执行。有关更多详细信息,请参见此处。注意:如果您在链接方面遇到问题,例如 “ GetAdditionalResourcesFromAssemblies”任务意外失败。 System.IO.FileNotFoundException:。也许在Mono for Android配置文件中不存在?

然后重新检查您的xamarin.Android项目设置并设置以下标记,

true

它应该可以解决您的问题。