使用 TFS 2018 与 VS 2019 构建解决方案
Posted
技术标签:
【中文标题】使用 TFS 2018 与 VS 2019 构建解决方案【英文标题】:Using TFS 2018 to build a solution with VS 2019 【发布时间】:2021-06-16 23:26:04 【问题描述】:是否可以使用 TFS 2018 服务器(版本 16.131.27701.1)通过 Visual Studio 2019 构建 C# 程序?如果有,怎么做?
我有一个安装了 Visual Studio 2019 的构建代理(使用 Azure Pipelines Agent v2.184.0)。 TFS 表示它具有以下功能:
在我的构建管道中,我尝试了 Visual Studio Build 任务和 MSBuild 任务。但是对于这两个任务,我只能选择 2017 年之前的 Visual Studio 版本:
当使用“最新”时,它会自动回退到使用 4.0:
项目文件包含 ToolsVersion="16.0"。此工具集可能未知或缺失,在这种情况下,您可以通过安装适当版本的 MSBuild 来解决此问题,或者出于政策原因,该构建可能已被强制使用特定的 ToolsVersion。将项目视为拥有 ToolsVersion="4.0"。
我什至尝试手动设置 MSBuild 16.0 的路径:
然后我得到一个不同的错误:
C:\Program Files\dotnet\sdk\5.0.201\Sdks\Microsoft.NET.Sdk\targets\Microsoft.PackageDependencyResolution.targets(241,5):错误 NETSDK1004:资产文件 'C:\Users[. ..]\obj\project.assets.json' 未找到。运行 NuGet 包还原以生成此文件。
但是,NuGet 还原任务正好在 MSBuild 任务之前并且它成功完成了!
【问题讨论】:
【参考方案1】:通常VS和TFS会匹配当前版本,根本原因是TFS 2018的代理无法识别VS 2019的功能,因为当时没有发布VS 2019。例如在 TFS 2018 中将支持 VS 2017 及之前的版本,在 Azure DevOps server 2019 中将支持 VS 2019 及之前的版本。 目前,我们发现一些开发者可以使用agent 2.159.2使VS2019在TFS2018中工作。 我们建议您可以下载 2.159.2 版本并使用 MSbuild 任务重试。
【讨论】:
我会尝试安装 2.159.2 版本。但是我想知道为什么它不适用于更新的版本?正如您在我的问题中看到的,我已经在使用 2.184.0 版本,它比您建议的版本更新。以上是关于使用 TFS 2018 与 VS 2019 构建解决方案的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 VS 2019 Team Explorer 在浏览器中打开工作项?
如何将 Visual Studio 2013 连接到 TFS 2018 服务器
使用测试影响分析的 TFS 2013 和 VS 2013 能否与 NUnit 一起使用
使用 VS 2013 和 TFS 2013 构建 vdproj 文件 - 出现构建错误 - 验证时出错。 HRESULT = '8000000A'