当尝试使用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在本地构建解决方案。 但构建代理仍然会抛出相同的错误。
答案 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 ;.检查以确保组件存在 磁盘。如果您的代码需要此引用,您可能会得到 编译错误。