【问题标题】:C# 6.0 TFS BuildsC# 6.0 TFS 构建
【发布时间】:2015-04-01 23:44:27
【问题描述】:

我正在 Visual Studio 2015 CTP 中试用 C# 6.0 的新功能,但我的项目未能在 TFS 2013 和 Visual Studio Online 中构建。

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

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

【问题讨论】:

  • 你可能无法在 VS online 上安装任何东西。
  • 我在某处读到我可以启动 Azure VM 来托管构建代理。这仍然让我对如何让它使用 Roslyn 感到摸不着头脑。
  • 那么你可能可以让代理使用你的 VS 2015 CTP 工具进行构建 (I know it can be done in TeamCity)

标签: tfs azure-devops roslyn visual-studio-2015 c#-6.0


【解决方案1】:

对于编译步骤,您有几个选择:

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

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

【讨论】:

  • 如果我添加 net.compilers 包,我仍然会遇到构建失败:“csc2.exe”退出,代码为 2427728
  • @jessehouwing 即使是 Tfs2013?
【解决方案2】:

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

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

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

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

【讨论】:

  • 对,Roslyn 编译器由 VS2015 的构建工具 MSI 安装,但可以单独安装。或者,您可以使用 www-1.nuget.org/packages/Microsoft.Net.Compilers 在每个项目的基础上更改编译器
  • 您无需安装 Visual Studio 即可获得 VS2013 或 VS2015 中的 C# 和 VB 编译器。构建工具包旨在安装在没有 VS 许可证的构建机器上。
  • 1) 在构建服务器上安装 VS 不需要 VS 许可证。您的许可证涵盖了它。 2)编译只是构建的一部分。您至少应该运行测试和打包。
  • @KevinPilch-Bisson 感谢您的 NuGet 建议,这似乎可以让项目在构建代理上编译!如果您想将此添加为答案,我会接受。但是,当它尝试运行单元测试时,我现在确实遇到了问题 - Could not load file or assembly 'Microsoft.VisualStudio.TestPlatform.Utilities, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified.
  • 现在安装 Visual Studio。
【解决方案3】:

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

【讨论】:

猜你喜欢
  • 2015-07-13
  • 1970-01-01
  • 2015-10-14
  • 2017-01-08
  • 2016-02-10
  • 2011-06-01
  • 2017-09-19
  • 2015-11-16
  • 2010-11-09
相关资源
最近更新 更多