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

内部的に名前が付けられているの==演算子オーバーロードは、 .NET4.0以降で使用できます。IOWは、MonoTouch(Silverlight、2.1、プロファイルのスーパーセット)に付属しているバージョンでは使用できません。PropertyInfoop_Equalitymscorlib.dll

何が起こっているのかは、デバッグをビルドするときに使用されるコンパイル済みアセンブリの異なるバージョンである可能性があります(リリースとは異なります)。このバージョンでは、MonoTouchで使用できないメソッドが使用されているため、アプリケーションのリンクまたはAOTの実行中にエラーが発生します。

解決策: MonoTouchに付属しているバージョンのmscorlib.dllを使用してこのアセンブリを再コンパイルします。op_Equalityこれにより、への参照(および使用)が回避されEquals、ビルドは正常に機能するはずです。

于 2012-04-08T20:52:16.487 に答える