使用TFS 2017 BuildAgent

时间:2017-02-28 14:38:50

标签: c# .net visual-studio tfs msbuild

当尝试使用TFS构建定义进行构建时,我遇到了以下探测器。

执行构建时,代理会记录以下错误:

  

错误CS0234:名称空间“Microsoft”中不存在类型或命名空间名称“VisualStudio”(您是否缺少程序集引用?)

     

错误CS0246:找不到类型或命名空间名称'TestInitializeAttribute'(您是否缺少using指令或程序集引用?)

     

错误CS0246:找不到类型或命名空间名称'TestCleanupAttribute'(您是否缺少using指令或程序集引用?)

     

错误CS0246:找不到类型或命名空间名称'TestCleanup'(您是否缺少using指令或程序集引用?)

     

错误CS0246:找不到类型或命名空间名称'TestMethodAttribute'(您是否缺少using指令或程序集引用?)

所以我理解这样的信息,即buildAgent无法找到以下.dll

  

Microsoft.VisualStudio.TestTools.UnitTesting;

我在服务器上安装了Visual Studio 2017 RC和Visual Studio 2017 Build Tools,它运行TFS和Buildagents。

我还在那个mashine上安装了.net 4.6.1。

accepted answer对我来说不是解决方案。

必须有某种解决方案,不包括将该dll复制到git trunk并从那里引用它。

更新

我能够在该mashine上使用Visual Studio 2017 RC在本地构建解决方案。 但构建代理仍然会抛出相同的错误。

3 个答案:

答案 0 :(得分:21)

我最终想出了如何解决这个问题。

我添加了以下nuget包作为我项目的参考:

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

这就是mstestv2框架。

之后我不得不删除对mstestv1框架的旧引用。

构建错误现在已经消失。

<强>更新

如果您想让您的测试被发现,请将MSTest TestAdapter添加到您的项目中。

感谢Maciej获取该信息。

答案 1 :(得分:3)

我在VS 2017中将目标框架从4.7更改为4.6.1,并且已修复

答案 2 :(得分:2)

确保没有签入包含NuGet包的&packages目录。 DLL文件。我不小心将此目录检查到源代码管理中,它阻止了NuGet还原任务正确下载所需的DLL

关键信息是构建日志中的警告:

  

警告MSB3245:无法解析此引用。找不到   程序集&#34; Microsoft.VisualStudio.TestPlatform.TestFramework,   Version = 14.0.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a,   ProcessorArchitecture用于= MSIL&#34 ;.检查以确保组件存在   磁盘。如果您的代码需要此引用,您可能会得到   编译错误。