MonoTouch错误MT2002:无法解析参考

Mar*_*l W 5 .net xamarin.ios ios

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

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

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

有什么不对?

pou*_*pou 7

.NET 4.0及更高版本中提供了内部命名的==运算符重载.Iow它在MonoTouch(它是Silverlight,2.1,配置文件的超集)的版本中不可用.PropertyInfoop_Equalitymscorlib.dll

发生的事情可能是构建Debug(与Release)时使用的预编译程序集的不同版本.此版本使用MonoTouch中没有的方法,这会在链接或AOT-ing您的应用程序时导致错误.

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

  • 谢谢你快速的回复!实际发生的情况:我在 PC 上使用 Visual Studio 进行编辑,甚至可以进行构建。当然我必须在Mac上重建才能运行。我猜想 PC 上的构建引入了错误的 mscorlib。删除所有项目中的obj和bin文件夹后,在Mac上重新编译工作正常。 (2认同)