TFSビルド定義を使用してビルドしようとしたときに、次の問題に遭遇しました。
ビルドを実行すると、エージェントは次のエラーを記録します。
エラーCS0234:型または名前空間名「VisualStudio」が名前空間「Microsoft」に存在しません(アセンブリ参照がありませんか?)
エラーCS0246:型または名前空間名 'TestInitializeAttribute'が見つかりませんでした(usingディレクティブまたはアセンブリ参照がありませんか?)
エラーCS0246:型または名前空間名 'TestCleanupAttribute'が見つかりませんでした(usingディレクティブまたはアセンブリ参照がありませんか?)
エラーCS0246:型または名前空間名 'TestCleanup'が見つかりませんでした(usingディレクティブまたはアセンブリ参照がありませんか?)
エラーCS0246:型または名前空間名 'TestMethodAttribute'が見つかりませんでした(usingディレクティブまたはアセンブリ参照がありませんか?)
だから私はbuildAgentが次の.dllを見つけることができないというメッセージをそのように理解しています
Microsoft.VisualStudio.TestTools.UnitTesting;
TFSとBuildagentsを実行するサーバーにVisual Studio 2017 RCとVisual Studio 2017 Build Toolsをインストールしました。
そのマシンに.net 4.6.1もインストールしました。
この 受け入れられた答え は私にとって解決策ではありません。
Dllをgit trunkにコピーしてそこから参照することを含まない、何らかの解決策が必要です。
更新
そのマシンでVisual Studio 2017 RCを使用して、ローカルでソリューションを構築できます。ただし、ビルドエージェントは引き続き同じエラーをスローします。
最後に、この問題を解決する方法を見つけました。
私のプロジェクトへの参照として、次のnugetパッケージを追加しました。
https://www.nuget.org/packages/MSTest.TestFramework/
それがmstestv2フレームワークです。
その後、mstestv1フレームワークへの古い参照を削除する必要がありました。
ビルドエラーはなくなりました。
更新:
テストを検出可能にする場合は、プロジェクトに MSTest TestAdapter を追加します。
Maciej に感謝します。
VS 2017でターゲットフレームワークを4.7から4.6.1に変更し、修正されました
NuGetパッケージとDLLを含む/ packagesディレクトリで持っていないを確認してください。このディレクトリを誤ってソース管理にチェックインしたため、NuGet復元タスクが必要なDLLを正しくダウンロードできませんでした
重要なメッセージは、ビルドログの初期の警告でした。
警告MSB3245:この参照を解決できませんでした。 「Microsoft.VisualStudio.TestPlatform.TestFramework、Version = 14.0.0.0、Culture = neutral、PublicKeyToken = b03f5f7f11d50a3a、processorArchitecture = MSIL」というアセンブリを見つけることができませんでした。アセンブリがディスクに存在することを確認してください。この参照がコードで必要な場合、コンパイルエラーが発生する可能性があります。