1

Visual Studio 2010既存のプロジェクトのテストプロジェクトを作成しています。DLLこのテストプロジェクトを作成しているプロジェクトで使用されているものの参照を追加しました。

問題は、そのDLLの参照を追加した後、テストを実行しようとすると、次のような実行時例外が発生することです。

System.IO.FileNotFoundException: Could not load file or assembly 
'SOME NAME, Version=2.5.2.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. The system cannot find the file specified

Copy Localその参照の属性をTrueに変更することで、この問題を解決しました。しかし、私はそれを真に変えたくありません。これをテストプロジェクトのデバッグフォルダにコピーしたくないからです。

他にそうする方法はありますか?

4

2 に答える 2

0

これは私が数年前に自問した重要な質問であり、次の実用的な解決策を見つけました。

  • すべてのアプリケーション dll (テスト用) を入れます$root$\bin\Debug
  • すべてのテストDLLを入れます$root$\bin
  • 各テスト dll または exe に対して、以下の内容のようなファイルを用意します (もちろん、App.configプローブ パスに含めていることに注意してください。また、そこに NUnit アセンブリを配置したためでもあります)。.\Debug.\NUnit\bin

<?xml version="1.0" encoding="utf-8" ?> <configuration> <runtime> <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <probing privatePath=" Debug;NUnit\ビン" /> </assemblyBinding> </runtime> </configuration>

ここに画像の説明を入力

ところで、決して使用しないでください。私はこのトピックに関するホワイトブックCopy Local = trueを書きました (コンパイル時間が最大10 倍遅くなる可能性があります!)

于 2012-08-22T20:48:14.110 に答える
0

VS 2010 でテスト プロジェクトについて話すと、「ソリューション項目」ディレクトリ内のテスト ソリューションで自動的に作成される「Local.testsettings」ファイルがあります。

テスト プロジェクトで必要な実行可能ファイル/DLL への参照を提供するには、それらの参照を追加するだけでなく、これらの実行可能ファイル/DLL のローカル コピーを作成したくない場合は、この "Local.testsettings" ファイルを変更する必要があります。

ここで問題は、このファイルで何を変更するかです。Visual Studio でこの "Local.testsettings" ファイルをダブルクリックします。「単体テスト」メニュー項目に移動します。読み込まれるアセンブリのルート フォルダーを指定します。(これは、テスト プロジェクトで実行可能ファイル/DLL を使用する場所の任意のディレクトリにすることができます)。[フォルダーの追加] ボタンを使用して、テストを実行するときに使用するフォルダーに同じフォルダーを指定します。

注: このファイルを保存するには、前のファイルを置き換える必要があります。「適用」ボタンをクリックします。次に、「名前を付けて保存」ボタンをクリックし、古い「Local.testsettings」ファイルの場所を選択して、そのファイルを置き換えます。

私の場合、テスト プロジェクトでは、テスト プロジェクトで使用されている DLL のローカル コピーを作成していません。「Local.testsettings」ファイルを変更した後、テストを正常に実行できます。

于 2012-08-23T07:39:12.327 に答える