TFS 2015的Visual Studio构建任务不支持VS 2017。

11

我们在TFS 2015中有一个构建定义,它与Visual Studio 2015的项目和解决方案一起使用得很好。现在我们决定升级到Visual Studio 2017,因此我们希望在Visual Studio构建任务中针对Visual Studio 2017进行构建。我们已经在构建代理上安装了Visual Studio 2017。不幸的是,Visual Studio构建任务中唯一可用的选项是2012、2013、2015和Latest。我们已经尝试了最新版本,但它未能在构建代理上找到Visual Studio 2017。msbuild任务也无法解决这个问题。


已决定在构建代理上安装[...]。请告诉我们,这不是看起来那样...这样的事情不应该在生产环境中测试... - swe
5
谁提到了生产环境?我完全不明白你的观点。 - Quattordici
5个回答

12

我遇到了类似的问题,通过在我的构建代理服务器上安装VS2017并配置MSBuild指向我的MSBuild 15.0文件夹来解决:

  1. 将MSBuild添加到您的构建步骤中
  2. 在高级选项中,展开并填写“MSBuild路径”,如下图所示:

    C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin
    

    enter image description here


这是唯一有效的解决方案。有时需要将/tv:15.0添加到msbuild参数中。 - StingyJack
我曾经遇到过类似的问题,使用这种方法解决了我的问题:将我的 TFS2015 构建指向 VS2017 msbuild 路径来构建 C#7 代码。唯一需要提醒的是路径中不应包含任何引号字符。我曾使用带引号的路径,但构建没有成功,但是一旦移除了引号,一切都能成功构建 - 这是一个需要注意的小细节,但它困扰了我一段时间! - Vermin
这些细节非常重要,以便我们不浪费时间。感谢您的反馈,Vermin!我刚刚编辑了答案。 - androzo
你怎么打开那个窗口?我们多年来一直在使用TFS和完整的MS订阅。这里有一半的指针我都找不到。ToolPath? MsBuild工具路径?在哪里?如何操作?您正在使用哪个版本的TFS/VS2019?我对MS的这个版本问题感到厌烦。 - Christian

2
我们遇到了类似的问题,但由于维护在公司层面上,我们无法对其进行更新,也无法施加太大的影响力。然而,我们团队希望转换到VS2017并利用C# 7功能。因此,我们尝试使用MSBuild替换Visual Studio Build的构建步骤。不幸的是,在构建期间出现了一些错误,导致这种方法无法达到预期效果。
由于我们的主要目标是使用C# 7功能,所以我们寻找了一种方法,如何在保留Visual Studio 2015的情况下,在构建服务器上实现该目标。我们最终使用了nuget包Microsoft.Net.Compilers,当在项目中使用时,它将使用该编译器代替安装的编译器。更多信息可以在此线程中找到。

2

最近发布了VS2017 RTM,而TFS2015则是之前发布的。这就是为什么在TFS2015服务器中没有VS2017选项的原因。如果您将服务器升级到最新的TFS2017,则会在VS Build Task中看到“Visual Studio”15“(preview)”选项,这是用于VS2017预览版的版本。未来,该选项将更新为与VSTS相同的VS2017版本。


感谢提供详细信息。如果我们有企业版TFS 2015服务器,并且没有升级到2017版本的计划,那么我们将无法使用C# 7中的任何新语言特性,因为VS2017将无法识别。 - Tedford
@Eddie - MSFT,请指出官方声明,证明VS2017不能与TFS 2015 Update 3一起使用。 - StingyJack
@Eddie-MSFT:我也遇到了这个问题,我的TFS 2017在VS版本下拉列表中的“VS Build”任务里仍然没有显示Visual Studio 2017。是否可以手动更新?如果可以,请告诉我具体步骤。 - Bandara

1
似乎构建工具的更新是通过VS2017安装程序的命令行安装的。请参阅文档获取详细信息。

我在构建代理上的构建工具没有问题。问题是TFS中内置的构建任务不知道如何找到2017年的构建工具。目前看来,我们将不得不采用命令行方式。 - Quattordici
@Quattordici,使用MSBuild任务而不是Visual Studio Build步骤怎么样,然后指定MSBuild 15.0的位置? - Cece Dong - MSFT
@Cece-MSFT 这也是我的第一个想法。但它没有起作用,因为它找不到指定的路径。因此回退到旧的msbuild。非常奇怪!我猜它正在寻找构建代理上的路径。 - Quattordici
所有工具都应该安装在构建代理机器上。如果您在MSBuild任务中指定了构建代理机器上MSBuild 15.0的位置,会出现什么错误? - Cece Dong - MSFT

0
只是再加一件事:如果您正在使用自定义构建模板,请确保编辑并修改ToolPath属性值为:

C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin


我放弃了。什么工具路径?我只是下载了默认模板。没有ToolPath。也没有MS工具路径...你们用的是哪个版本? - Christian

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接