5

我正在开发一个使用大量反射的 iOS/MonoTouch 项目。一切都很好,但是当我编译Debug|iPhone版本时,我得到了错误:

错误 MT2002:无法解析参考:System.Boolean System.Reflection.PropertyInfo::op_Equality(System.Reflection.PropertyInfo,System.Reflection.PropertyInfo)

有趣的是 Release|iPhone 版本运行良好。

有什么问题?

4

1 回答 1

7

内部命名为的==运算符重载可在 .NET 4.0 及更高版本上使用。IOW 它在MonoTouch 附带的版本中不可用(它是 Silverlight 2.1 配置文件的超集)。PropertyInfoop_Equalitymscorlib.dll

发生的事情可能是构建Debug时使用的预编译程序集的不同版本(相对于Release)。此版本使用 MonoTouch 中不可用的方法,这将导致在链接或 AOT-ing 应用程序时出错。

解决方案:使用 MonoTouch 附带的 mscorlib.dll 版本重新编译此程序集。这将避免对op_Equality(和使用Equals)的引用,并且构建应该可以正常工作。

于 2012-04-08T20:52:16.487 回答