2016-11-29 4 views
2

は、私はこのエラーを取得しておいてください。MT2002の不具合DLLを見つけるには? VSTSを使用して、私のXamarin.iOSプロジェクトを構築しようとして

MTOUCH: error MT2002: Failed to resolve "System.Configuration.ConfigurationException" reference from "System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"

私はそれはいくつかのDLLが不適切なものを参照していることを意味理解しています。しかし、私はシミュレータを介してデバッグするときは正常に動作します。私が似たようなプロジェクトを読み込むと、うまく動作します(VSTSを使ってビルドされます)。問題のあるファイル/参照を識別して見つける簡単な方法があるので、私はそれを試して修正することができますか?

+0

この問題のGoogleヒット件数はずっとよくなりました。この質問は、より良い正準なQ + Aを生成することはほとんどありません。 –

+0

不正な参照DLLがあると言ってヒットしました。悪い参照を見つけ出す方法は誰にも分かりません。 – Noah

答えて

3

は、IDE内からは、これはXI(もPCL)で出荷されたバージョンではありませんSystem, Version=4.0.0.0のための参照持ってい)ソリューションの内側).dllをどの参照するアセンブリブラウザを使用することができます。このアセンブリ(および型)への参照を持つ複数のアセンブリが存在する可能性があることに注意してください。

grep(少なくともMacOSではWindows固有のツールを思い出すことはできません)を使用して、どの.dllに文字列ConfigurationExceptionが含まれているかを調べることができます。

サイドノート:

  • それがシミュレータで動作する理由は、JITはデフォルトで、使用(そう欠けているものは、実行時ではなく、ビルド時にスローされます)とされていることで、管理されたリンカーは無効になります(また、コードを再解析してコードを書き換えることができる必要があります)。

  • 不足しているシンボルに達する依存関係はありません。そのような場合、リンカは(コードを解決する代わりに)コードを削除するだけです。しかし、ConfigurationExceptionが(静的解析によって)到達可能な場合は、リンカがアセンブリを書き直す必要があります。最終的なアプリケーションコードがそれを必要としない限り、リンカーはの不良なアセンブリ(または参照)を受け入れることができます。

+1

ありがとう!私にとってはSystem.ComponentModel.DataAnnotationsでした。私はPCLの焦点を変更したと信じて、それは問題を引き起こした。それへの参照を削除することで問題が解決されました。 – Noah

関連する問題