2012-04-07 23 views
5

私は多くの反射を使用しているiOS/MonoTouchプロジェクトで作業しています。すべてが素晴らしい作品が、私はデバッグコンパイル時に| iPhoneバージョン私はエラーを取得する:| iPhoneのビルド正常に動作しますMonoTouchのエラーMT2002:参照を解決できません

error MT2002: Can not resolve reference: System.Boolean System.Reflection.PropertyInfo::op_Equality(System.Reflection.PropertyInfo,System.Reflection.PropertyInfo)

をおかしい事はリリースということです。

何が間違っていますか?

答えて

7

==の演算子オーバーロード(内部ではop_Equality)は、.NET 4.0以降で使用できます。 IOWは、MonoTouch(Silverlight、2.1、プロファイルのスーパーセット)に同梱されているmscorlib.dllのバージョンでは利用できません。何が起こっている

可能性が高い(リリース対)デバッグを構築する際に使用され、プリコンパイル済みのアセンブリの異なるバージョンです。このバージョンでは、MonoTouchで利用できないメソッドが使用されています。これは、アプリケーションをリンクまたは使用している間にエラーが発生します。

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

+1

あなたの迅速な対応に感謝します!実際に何が起こったのですか:私は編集のために私のPC上でVisual Studioを使用し、私もビルドすることができます。もちろん、私はMac上で再構築する必要があります。私は間違ったmscorlibを引っ張ってPC上のビルドを推測する。すべてのプロジェクトでobjとbinフォルダを削除した後、Macで再コンパイルするとうまくいきました。 –

+0

この問題が発生するたびに私はこの答えに戻ります。私は解決策を忘れています。 :-) –

+1

@DanAbramovは歴史的な事実になるはず/よくあるご質問はすぐに;-) – poupou

関連する問題