首先,我在answers.unity.com上发布了一个类似的问题,并且在意识到它影响了一个更广泛的社区...所以请不要把它作为交叉点。
最近向IOS部署C#代码对我来说是一场噩梦。当我尝试将我的游戏部署到IPAD时,所有都以ExecutionEngineException开始,我使用了一个成熟的单元测试组件。
过去几天我做了功课,发现了几十个与ExecutionEngineException相关的问题。据我所知,这里没有神奇的解决方案,只能解决具体的代码。
现在问题出在这里:假设你有一个经过单元测试的代码。 (例如游戏AI或任何与IOS平台无直接关系的东西)在IOS上运行时,这将转向雷区。你无法知道,也不能单元测试代码的哪一部分会破坏。
这会破坏我(我们的)关于软件质量和测试的所有想法......
我们必须在这里找到解决方案。理想情况下,我们应该在桌面上针对其单元测试运行AOT-ed代码。我认为目前不可能,请纠正我,如果我错了并分享步骤说明如何做(最好是在Windows?)
作为备份计划,我们必须创建一个详细的列表,如果定位AOT-ed平台,如IOS
,那么构建的代码是什么样的到目前为止我的经历:
1)将FirstOrDefault与值类型一起使用 2)使用Sum(customType =(gt)customType.Property)
有人知道如何处理这个问题吗?
此致
答案 0 :(得分:4)
假设你有一个经过单元测试的代码。
如果您已经进行了单元测试,那么您很幸运。您只需使用Touch.Unit在iOS设备上调整这些单元测试。
作为备份计划,我们必须创建一个详细的列表,如果定位AOT-ed平台,如IOS
,那么构建的代码是什么样的
您最接近的是MonoTouch的limitation页面。上下文而不是API通常是最重要的细节。
E.g。使用value-type的泛型会产生问题(因为很难检测到需要生成的内容)。在使用LINQ时,人们通常会点击,但它不是LINQ问题 - 而是LINQ查询中使用的类型。
1)将FirstOrDefault与值类型
一起使用
AFAIK已在MonoTouch中修复了一段时间(至少有几种变体)。 OTOH Unity引擎可能还没有那些修复。
2)使用Sum(customType =(gt)customType.Property)
在不知道类型的情况下,无法确定其是否有效。如果/当您遇到此类情况时,请将其报告给bugzilla,因为我们可以将它们包含在我们的测试套件中(对于将来的版本),并且通常能够为大多数情况提供快速解决方案。