如果单元测试项目包含在解决方案中,TFS 2017 Express将无法构建

时间:2018-01-12 17:18:18

标签: visual-studio tfs msbuild

我最近在Windows 10 Pro PC上安装了TFS 2017 Express。我也在同一台机器上安装了Visual Studio 2017 Pro。在尝试在TFS上构建解决方案时,我注意到了持久性行为。如果我的解决方案包含单元测试项目,那么构建过程将在" Visual Studio Build"步。如果我删除单元测试项目,提交到TFS,并对新构建进行排队,则构建成功。

我确保表明" Visual Studio 2017"在Nuget和Visual Studio构建步骤和"最新"在测试构建步骤中。

这些是日志中的相关摘录:

  • (警告)Visual Studio版本' 15.0'未找到。寻找最新版本。
  • (错误)HelloConsole \ packages \ Microsoft.Net.Compilers.2.1.0 \ build \ Microsoft.Net.Compilers.props(13,5) HelloConsole \ packages \ Microsoft.Net.Compilers.2.1.0 \ build \ Microsoft.Net.Compilers.props(13,5):错误:Microsoft.Net.Compilers仅在MSBuild v14.0及更高版本上受支持
  • (错误)处理' msbuild.exe'退出代码' 1'。

我会包含任何其他日志或屏幕截图,如果这有助于诊断问题。

此症状仅在存在C#单元测试项目时发生。是否有任何变通方法,以便我可以在解决方案中使用C#单元测试项目运行TFS构建?

我确实看过available documentation,在这种情况下看不到任何帮助。我浏览了那个文档并查看MSBuild Command-Line Reference,认为我可以指导Visual Studio Build使用MSBuild版本15.我在"版本"是/version: Display version information only. The project isn’t built.

更新 我看到有两种下载TFS Express的不同方法。我下载它的方式没有提到版本。我从here下载了它并滚动到" Team Foundation Server Express"并点击"下载"。没有提到版本,正如@ PatrickLu-MSFT所示。

1 个答案:

答案 0 :(得分:1)

根据上面记录的错误消息:

  

仅在MSBuild v14.0及更高版本

上支持Microsoft.Net.Compilers

TFS版本使用随.NET Framework一起发布的msbuild版本,这是一个旧版本。您可以手动检查在构建代理上是否存在VS 2017 / Build Tools for VS 2017分发的版本的路径,该路径应该是

xxx\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin\MSBuild.exe

然后直接使用此MSBuild.exe在构建代理上运行带有单元测试项目的解决方案。如果问题与构建代理环境有关,这将缩小范围。

建议您enable verbose debug mode获取更多详细日志以进行问题排查。

您还可以将TFS Express升级到最新版本Team Foundation Server Express 2017 Update 3,对于构建任务(如Visual Studio Build),请确保选择了最新的任务版本(位于配置页面的左下角)。 / p>