2

System.XmlまたはSystem.Xml.Linq名前空間を必要とする単体テストがある場合、テストを実行すると次のエラーが発生します。

System.IO.FileNotFoundException:ファイルまたはアセンブリ'System.Xml.Linq、Version = 2.0.5.0、Culture = neutral、PublicKeyToken=31bf3856ad364e35'またはその依存関係の1つを読み込めませんでした。

私が確認したこと:

  • 私はテストで適切な使用法を持っています。
  • プロジェクトは問題なくビルドされます。
  • これらの名前空間の使用は、エミュレーターでアプリを実行するときに正常に機能します。
  • ユニットテストがまったく機能することを証明するために、非常に単純なユニットテストを作成しました(実際に機能します)。

私はテスト駆動のちょっとした人なので、これが機能するのを待つことができないので、アプリを進めることができます。

前もって感謝します。

4

2 に答える 2

2

monotouch が単体テスト プロジェクトの参照で使用するのと同じ dll (アセンブリ) を追加する必要があります。

これらは /Developer/MonoTouch/usr/lib/mono//... にあります。

たとえば、System.Xml を使用する必要があったため、テスト プロジェクトの参照を編集し、次のアセンブリを追加しました。

/開発者/MonoTouch/user/lib/mono/2.1/System.Xml.dll

system.xml.linq にも 1 つあり、これらは必要な適切なバージョン (2.0.5.0) です。

于 2010-04-06T20:57:08.833 に答える
0

おそらく、Mono は必要なライブラリを探している場所で見つけていません。デフォルトでは、NUnit はテスト ライブラリを別の場所にコピーしようとするため、グローバルに表示されないライブラリ (GAC にインストールされているシステム ライブラリ) は検出されません。問題を回避するために、テスト中のライブラリをコピーしないようにNUnitのオプションをMonodevelopで設定できるかどうかはわかりません。1 つの可能性は、スタンドアロンの NUnit コンソール ランナーを実行して、オプションを設定するか、NUnit により多くの情報を提供して、より多くのものをコピーさせることですが、NUnit に適切なプロファイル (Silverlight に基づくモノタッチ) を使用させる必要があるため、複雑です。

于 2010-04-06T18:40:04.410 に答える