2017-02-28 73 views
6

尝试使用TFS构建定义进行构建时,遇到以下probem。在使用TFS 2017构建解决方案时出现CS0234 BuildAgent

当执行一个Build Agent会记录以下错误:

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

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

错误CS0246:类型或命名空间名称“TestCleanupAttribute”找不到(你是否错过了使用di rective集引用)

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

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

让我明白了消息的方式,该buildAgent无法找到下列.dll

Microsoft.VisualStudio.TestTools.UnitTesting;

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

我也在该mashine上安装了.net 4.6.1。

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

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

更新

我能够在本地建立对mashine使用Visual Studio 2017年RC的解决方案。 但构建代理仍会引发相同的错误。

+1

您是否能够在VS 2017 RC本地生成项目?转到您的构建代理机器并使用msbuild命令行手动运行您的项目,以查看您会得到什么结果?此外,请检查以下网站上的错误CS0234和错误CS0246的原因,以查看它们是否可以提供帮助:https://docs.microsoft.com/en-us/dotnet/articles/csharp/language-reference/compiler-messages/cs0234, https://docs.microsoft.com/en-us/dotnet/articles/csharp/language-reference/compiler-messages/cs0246 –

+0

Thx提示尝试使用命令行中的msbuild构建它。我还会检查并提供反馈 –

回答

10

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

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

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

这是mstestv2框架。

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

构建错误现在消失了。

更新:

如果你想拥有你的测试发现添加MSTest TestAdapter到您的项目。

感谢Maciej该信息。

+3

如果您希望您的测试在Visual Studio中可发现/可运行,则还需要添加MSTest.TestAdapter版本1.2.0:Install-Package MSTest.TestAdapter -Version 1.2.0 – Maciej

+1

感谢您的提示!我将它添加到答案 –

+0

我有与自定义DLL类似的问题。然后我删除了对dll的旧引用,粘贴了对同一个dll的新引用,并且它的工作原理! – Rekshino

1

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

相关问题