.net MonoTouch错误MT2002:无法解析引用

.net MonoTouch错误MT2002:无法解析引用,.net,ios,xamarin.ios,.net,Ios,Xamarin.ios,我正在做一个iOS/MonoTouch项目,它使用了大量的反射。一切都很好,但是当我编译Debug | iPhone版本时,我得到了一个错误: 错误MT2002:无法解析引用:System.Boolean System.Reflection.PropertyInfo::op_Equality(System.Reflection.PropertyInfo,System.Reflection.PropertyInfo) 有趣的是,iPhone版本运行良好 有什么问题吗?在.NET 4.0及更高版本上

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

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

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


有什么问题吗?

在.NET 4.0及更高版本上提供了
=
运算符重载,内部名为
op_Equality
。在MonoTouch附带的
mscorlib.dll
版本中(它是Silverlight 2.1配置文件的超集)不提供此功能

正在发生的事情很可能是在构建调试时使用的预编译程序集的不同版本(与发行版相比)。此版本使用MonoTouch中不可用的方法,这将导致链接或AOT应用程序时出错


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

感谢您的快速响应!实际情况:我在电脑上使用VisualStudio进行编辑,甚至可以构建。当然,我必须在Mac上重建才能运行。我猜PC上的构建引入了错误的mscorlib。在删除所有项目中的obj和bin文件夹后,在Mac上重新编译工作正常。每当我遇到这个问题时,我都会回到这个答案。我总是忘记解决方案。:-)@DanAbramov应该很快成为历史事实/常见问题;-)