C# 6.0 TFS 构建

C# 6.0 TFS Builds

我正在 Visual Studio 2015 CTP 试用 C# 6.0 的新功能,但我的项目无法在 TFS 2013 和 Visual Studio Online.

中构建

我知道 Visual Studio 使用新的 Roslyn 编译器,它取代了原生的 .NET 编译器,因此 TFS 构建代理无法编译。

我的问题是如何在构建代理上(以及 Visual Studio 在线)安装 Roslyn 并告诉构建代理使用此编译器而不是本地编译器?

如果您使用 Server 2012 r2 创建 Azure VM 并安装 Visual Studio 2015 CTP 和 TFS 2013 Build,您可以将其连接到 VSO。

然后您应该能够完成构建,它会自动使用新的编译器。

虽然您可以只安装编译器,但构建不仅仅是编译。您可能很快需要 Visual Studio 的其他功能,例如单元测试,作为构建的一部分执行。您的构建代理应该反映您的开发人员标准工作站。如果您的开发人员需要它,那么代理人 likley 也需要它。

注意:Visual Studio 授权给个人而非机器。在构建代理上 运行 它不需要许可证。事实上,只要您有一个注册到您的或特定级别的许可证,比如 Ultimate,那么您就可以在每个构建服务器上安装它。

对于编译步骤,您有两种选择:

  1. 您可以在每个项目的基础上引用 Microsoft.Net.Compilers NuGet 包以使用该版本的编译器。
  2. 您可以安装作为 VS 2015 CTP 包一部分的 Microsoft Build Tools 包,而无需安装所有 VS。

但是,正如@MrHinsh 指出的那样,这些方法可能会让您遗漏工具链的其他部分。

在 BuildTemplate 的 Process 部分的 MSBuild 参数中使用 /tv:14.0 /p:GenerateBuildInfoConfigFile=false /p:VisualStudioVersion=14.0。