首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >编译时MonoTouch错误: System.Boolean System.Type::op_Equality(System.Type,System.Type)

编译时MonoTouch错误: System.Boolean System.Type::op_Equality(System.Type,System.Type)
EN

Stack Overflow用户
提问于 2012-04-27 03:40:18
回答 1查看 1.6K关注 0票数 1

我有一个MonoTouch应用程序,当我为设备编译它时,我得到以下错误:

代码语言:javascript
复制
Error MT2002: Can not resolve reference: System.Boolean System.Type::op_Equality(System.Type,System.Type) (MT2002)

它在模拟器中工作得很好,不过偶尔我会得到一个相同类型的MissingMethodException

我没有第三方图书馆。所有的代码都是我自己的。有什么想法吗?

编辑这里是我的3个项目和他们的所有参考资料。

项目1: Mobile.Libraries

  • monotouch
  • System
  • System.Core
  • System.Xml

项目2: Mobile.Core

  • Mobile.Libraries
  • System
  • System.Core
  • System.Xml

项目3: Mobile.IOS

  • monotouch
  • Mobile.Core
  • System
  • System.Core
  • System.Xml
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-04-27 13:46:39

正如@Jonathan.Peppers所说,当您使用针对完整的.NET4配置文件构建的编译的 .dll时,就会发生这种情况。

MonoTouch基类库(BCM)提供了Silverlight配置文件(2.1)的超集,并添加了一些内容。因此,从另一个框架中添加预编译的二进制文件可能需要一些类型/方法,这些类型/方法是,而不是MonoTouch BCL中的

解决方案是根据.dll附带的BCL程序集重新构建所有MonoTouch。这将确保编译器只使用可用的符号。

为什么要在iOS模拟器上工作?

那是因为JIT被使用了。因为它是及时编译的,所以您可能永远无法到达缺少的符号,所以它可以工作,直到您命中缺失的代码(并获得一个运行时错误)。

另一方面,当您使用设备(或链接器)时,将加载所有符号(并为AOT编译)。任何丢失的东西都会提前发现,所以你会得到一个像上面一样的构建时错误。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10344426

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档