いくつかの単体テストプロジェクトを含むVS2008ソリューションをVS2010に変換しました。変換後、ソリューションをコンパイルしようとしましたが、次のエラーが表示されます。
型または名前空間名「VisualStudio」が名前空間「Microsoft」に存在しません(アセンブリ参照がありませんか?)
名前空間宣言が見つかりませんusing Microsoft.VisualStudio.TestTools.UnitTesting;
。さらに、新しいプロジェクト参照を追加しようとしたときに、Microsoft.VisualStudio.QualityTools.UnitTestFrameworkアセンブリが見つかりませんでした。
誰かが私が間違っていることを知っていますか?
この問題が発生したばかりで、Microsoft.Data.Schemaライブラリも同様です。これらのライブラリはマシンとVS 10.0ディレクトリにあるため、答えは正しいです。
問題(少なくとも私にとって)は、ソリューションがVS2008から変換され、変換ユーティリティが.NET 3.5のプロジェクトを対象としたことでした。 10.0ライブラリは.NET 4.0を必要とするため、コンパイラによって選択されません。
解決策は、VS2008を使用して、これらが正しく解決される場所に戻すことです。または、プロジェクトを切り替えて.NET 4.0用にコンパイルし、利用可能なライブラリを使用できるようにします。
_Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll
_と呼ばれます。
C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\PublicAssemblies\Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll
にあります。
Visual Studio 2015ユーザーの場合:
Visual Studio 2015を使用してPrism WPFアプリケーションStockTraderRI UnityバージョンをPrism 2.2から5.0にアップグレードすると、同様の問題が発生しました。5.0バージョンはMEFを使用し、Unityバージョンが必要でした。
私がやったステップは:
複数のテストプロジェクトでこれを行う必要がありましたが、追加を繰り返す最速の方法は、[アセンブリ]を選択することです。最近
VSTS 2010の場合、参照にこれらが含まれていることを確認してください。
Microsoft.VisualStudio.QualityTools.UnitTestFramework
Microsoft.VisualStudio.QualityTools.WebTestFramework(Webテストを実行している場合)
Visual Studio 2010 SP1をダウンロードしてください。それをインストールします。その後、テストプロジェクトのフレームワークを以前のデフォルトの4.0から3.5などに変更できます。フレームワークを、テストするプロジェクトのフレームワークバージョンに変更するだけです。これでコードが平和的に結合され、テストを実行できるようになります。
+ Erik Brown氏は正しい。問題は、VS2010がプロジェクトを.NET 3.5にターゲティングすることをサポートしているが、.NET 3.5プロジェクトの単体テストをサポートしていないことです。
ただし、本番環境でコードが実行されるフレームワークでコードをテストすることは理にかなっているため、この作業を行うことが望ましいです。この作業を簡単に行う方法の1つは、代わりにNUnitを使用にし、Resharperを使用してVisual StudioまたはNUNitテストランナー内からテストを実行することです。 NUnitは.NET v2.x-v4.xで単一のバイナリセットで動作します。