1

VS2010 から移行された単体テスト プロジェクトは、自動生成されたプライベート プロパティ アクセサーを引き続き使用します。

クラス ライブラリ プロジェクト、クラス ライブラリ プロジェクトの単体テスト プロジェクト、および Web プロジェクトを含むソリューションのコーディングとテストに何時間も費やした後、突然エラーが発生します。Web プロジェクトは IIS Express で実行されます。

エラー 24 ファイルまたはアセンブリ 'The.ClassLibrary、Version=1.0.0.0、Culture=neutral、PublicKeyToken=null' またはその依存関係の 1 つを読み込めませんでした。システムは、指定されたファイルを見つけることができません。The.ClassLibrary.Tests

事実

  • The.ClassLibrary.Tests には、The.ClassLibrary へのプロジェクト参照があります。
  • 他のビルド エラーはありませんでした (エラー ウィンドウだけでなく、ビルド出力を確認しました)。
  • DLL は物理的に存在し、現在のタイムスタンプはbin\debug
  • IIS Express を再起動しました
  • Visual Studio を再起動しました
  • ソリューションをクリーンアップ/再構築しました
4

1 に答える 1

0

オプション A

この問題を回避します。それは再び起こるかもしれません。

試行した手順に加えて、ディスク上にあるすべての The.ClassLibrary.Dllを検索して削除する必要がありました。したがって、完全な手順は次のとおりです。

  • IIS Express を停止する
  • Visual Studio 2012 を終了します。
  • 「見つからない」DLL のすべてのインスタンスを検索して削除します。
  • Visual Studio 2012 を起動します。

これが誰かに役立つことを願っています。

オプション B

問題を適切に修正する

プライベート アクセサーは VS2012 で減価償却されます。代わりに、ユニット テスト内部に表示する必要があるプライベートなものを作成し、テスト対象のプロジェクトのInternalsVisibleTo属性を使用して、テスト プロジェクトがテスト サブジェクトの内部プロパティ、メソッド、およびフィールドにアクセスできるようにします。AssemblyInfo.cs

AssemblyInfo.cs (MyProject の)

[assembly: InternalsVisibleTo("MyNs.MyProject.Tests")]
于 2013-02-09T21:11:23.787 に答える