我最近在Windows 10 Pro PC上安装了TFS 2017 Express。我也在同一台机器上安装了Visual Studio 2017 Pro。在尝试在TFS上构建解决方案时,我注意到了持久性行为。如果我的解决方案包含单元测试项目,那么构建过程将在" Visual Studio Build"步。如果我删除单元测试项目,提交到TFS,并对新构建进行排队,则构建成功。
我确保表明" Visual Studio 2017"在Nuget和Visual Studio构建步骤和"最新"在测试构建步骤中。
这些是日志中的相关摘录:
我会包含任何其他日志或屏幕截图,如果这有助于诊断问题。
此症状仅在存在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所示。
答案 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>