什么可以使DLL失败AOT编译?

时间:2016-10-26 19:38:34

标签: xamarin xamarin.android

(这与我提出的另一个问题类似,但是那个问题主要集中在禁用AOT。这主要集中在诊断根本原因上。)

我正在开发一个Xamarin Forms项目。在过去的几周里,我一直专注于iOS代码,并没有太多关注Android方面。本周,我得到了一个更具针对Android的问题,所以我尝试了部署。部署总是失败,并显示消息“无法对程序集进行AOT:foo.dll”。 “foo.dll”是由另一个团队制作的内部组件。

我的团队中没有其他人遇到此问题,但他们是在Windows计算机上开发的。我在Mac OS Sierra上,我怀疑构建工具链目前不兼容的东西。但是在开始之前还有一系列Xamarin更新,所以我不知道它们是否也是无辜的。

随着时间的推移,我设法将其与Xamarin Studio 6.1.x发布周期相关联。我的团队中任何升级的人都会在Windows和Mac OS上开始收到此错误。

我们可以通过.csproj标记禁用项目中的AOT来暂时解决这个问题,但是我们的应用程序在启用时会显示出显着的性能提升。所以我想弄清楚为什么这个DLL无法通过AOT编译,并修复它。但我不知道如何进步。

什么可能导致这种失败?为什么不会在iOS版本的DLL中发生?为什么它特定于Xamarin Studio 6.1?

(我目前在OSX 10.12.0上运行Xamarin Studio 6.0.2(build 73)。我有Xamarin.iOS 9.8.2.22和Xamarin.Android 6.1.2.21。从这些升级到6.1.x中的任何内容周期似乎引发了这个问题。)

0 个答案:

没有答案