web-dev-qa-db-ja.com

TFS 2017 BuildAgentを使用してソリューションを構築する際のエラーCS0234

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を使用して、ローカルでソリューションを構築できます。ただし、ビルドエージェントは引き続き同じエラーをスローします。

13
Tobias Theel

最後に、この問題を解決する方法を見つけました。

私のプロジェクトへの参照として、次のnugetパッケージを追加しました。

https://www.nuget.org/packages/MSTest.TestFramework/

それがmstestv2フレームワークです。

その後、mstestv1フレームワークへの古い参照を削除する必要がありました。

ビルドエラーはなくなりました。

更新:

テストを検出可能にする場合は、プロジェクトに MSTest TestAdapter を追加します。

Maciej に感謝します。

22
Tobias Theel

VS 2017でターゲットフレームワークを4.7から4.6.1に変更し、修正されました

3
Charlie

NuGetパッケージとDLLを含む/ packagesディレクトリで持っていないを確認してください。このディレクトリを誤ってソース管理にチェックインしたため、NuGet復元タスクが必要なDLLを正しくダウンロードできませんでした

重要なメッセージは、ビルドログの初期の警告でした。

警告MSB3245:この参照を解決できませんでした。 「Microsoft.VisualStudio.TestPlatform.TestFramework、Version = 14.0.0.0、Culture = neutral、PublicKeyToken = b03f5f7f11d50a3a、processorArchitecture = MSIL」というアセンブリを見つけることができませんでした。アセンブリがディスクに存在することを確認してください。この参照がコードで必要な場合、コンパイルエラーが発生する可能性があります。

2
JordanBean