如何在 Team Foundation Server 2015 中启用 C# 7 构建?
How do I enable C# 7 builds in Team Foundation Server 2015?
我们在本地安装了 Team Foundation Server (TFS) 2015。我们想使用 Visual Studio 2017 来利用最新的 C# 语言功能。我们尚未准备好升级到 TFS 2017。允许在 TFS 2015 中构建最新的 C# 语言功能需要哪些步骤?
只需安装最新版本的 Microsoft.Net.Compilers nugget 包
https://www.nuget.org/packages/Microsoft.Net.Compilers >>
.Net 编译器包。引用此包将导致使用包中包含的特定版本的 C# 和 Visual Basic 编译器构建项目,而不是任何系统安装的版本。
此包可用于编译针对任何平台的代码,但只能运行使用桌面 .NET 4.6+ 完整框架。
我没有完全按照这些步骤操作,但根据我所学到的,我认为它们会奏效:
- 在 XAML 构建配置服务器上安装 Visual Studio 2017 Build Tools
- 将这些行添加到 TFSBuildServiceHost.exe.config 文件:
<configSections>
<section name="msbuildToolsets" type="Microsoft.Build.Evaluation.ToolsetConfigurationSection, Microsoft.Build.Utilities.Core, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" requirePermission="false" />
</configSections>
<msbuildToolsets>
<toolset toolsVersion="15.0">
<property name="MSBuildToolsPath" value="C:\Program Files (x86)\Microsoft Visual Studio17\BuildTools\MSBuild.0\Bin" />
</toolset>
<toolset toolsVersion="latest">
<property name="MSBuildToolsPath" value="C:\Program Files (x86)\Microsoft Visual Studio17\BuildTools\MSBuild.0\Bin" />
</toolset>
</msbuildToolsets>
C:\Program Files\Microsoft Team Foundation Server
14.0\Tools\TFSBuildServiceHost.exe.config
(I never would have figure that out without this
post. Thank you jonesy2488!)
- 重新启动 XAML 构建配置服务。
- 更改 XAML 构建过程模板以包含 ToolVersion="15.0" 参数:
<mtba:RunMSBuild DisplayName="Run MSBuild" OutputLocation="[OutputLocation]" CleanBuild="[CleanBuild]" CommandLineArguments="[String.Format("/p:SkipInvalidConfigurations=true {0}", AdvancedBuildSettings.GetValue(Of String)("MSBuildArguments", String.Empty))]" ConfigurationsToBuild="[ConfigurationsToBuild]" ProjectsToBuild="[ProjectsToBuild]" ToolVersion="15.0" ToolPlatform="[AdvancedBuildSettings.GetValue(Of String)("MSBuildPlatform", "Auto")]" RunCodeAnalysis="[AdvancedBuildSettings.GetValue(Of String)("RunCodeAnalysis", "AsConfigured")]" />
我们在本地安装了 Team Foundation Server (TFS) 2015。我们想使用 Visual Studio 2017 来利用最新的 C# 语言功能。我们尚未准备好升级到 TFS 2017。允许在 TFS 2015 中构建最新的 C# 语言功能需要哪些步骤?
只需安装最新版本的 Microsoft.Net.Compilers nugget 包
https://www.nuget.org/packages/Microsoft.Net.Compilers >> .Net 编译器包。引用此包将导致使用包中包含的特定版本的 C# 和 Visual Basic 编译器构建项目,而不是任何系统安装的版本。
此包可用于编译针对任何平台的代码,但只能运行使用桌面 .NET 4.6+ 完整框架。
我没有完全按照这些步骤操作,但根据我所学到的,我认为它们会奏效:
- 在 XAML 构建配置服务器上安装 Visual Studio 2017 Build Tools
- 将这些行添加到 TFSBuildServiceHost.exe.config 文件:
<configSections>
<section name="msbuildToolsets" type="Microsoft.Build.Evaluation.ToolsetConfigurationSection, Microsoft.Build.Utilities.Core, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" requirePermission="false" />
</configSections>
<msbuildToolsets>
<toolset toolsVersion="15.0">
<property name="MSBuildToolsPath" value="C:\Program Files (x86)\Microsoft Visual Studio17\BuildTools\MSBuild.0\Bin" />
</toolset>
<toolset toolsVersion="latest">
<property name="MSBuildToolsPath" value="C:\Program Files (x86)\Microsoft Visual Studio17\BuildTools\MSBuild.0\Bin" />
</toolset>
</msbuildToolsets>
C:\Program Files\Microsoft Team Foundation Server 14.0\Tools\TFSBuildServiceHost.exe.config
(I never would have figure that out without this post. Thank you jonesy2488!)
- 重新启动 XAML 构建配置服务。
- 更改 XAML 构建过程模板以包含 ToolVersion="15.0" 参数:
<mtba:RunMSBuild DisplayName="Run MSBuild" OutputLocation="[OutputLocation]" CleanBuild="[CleanBuild]" CommandLineArguments="[String.Format("/p:SkipInvalidConfigurations=true {0}", AdvancedBuildSettings.GetValue(Of String)("MSBuildArguments", String.Empty))]" ConfigurationsToBuild="[ConfigurationsToBuild]" ProjectsToBuild="[ProjectsToBuild]" ToolVersion="15.0" ToolPlatform="[AdvancedBuildSettings.GetValue(Of String)("MSBuildPlatform", "Auto")]" RunCodeAnalysis="[AdvancedBuildSettings.GetValue(Of String)("RunCodeAnalysis", "AsConfigured")]" />