msbuild - 使用 C#6 构建 TeamCity

标签 msbuild teamcity tfsbuild roslyn c#-6.0

我们使用 TeamCity (9.0.1) 作为我们的构建服务器,但最近升级了我们的 ASP.NET MVC 解决方案以使用 VS2015 和 C#6 语法,我现在在我们的构建服务器上收到以下错误消息:

Can not start build runner



更具体地说:

C:\TeamCity\buildAgent\work\86ee61c6c333dc3d\MyApplication\MyApplication.csproj.metaproj : error MSB4025: The project file could not be loaded. Could not find file 'C:\TeamCity\buildAgent\work\86ee61c6c333dc3d\MyApplication\MyApplication.csproj.metaproj'.



我遵循了几个不同帖子中的建议(尽管这些主要关注 TFS 而不是 TeamCity,并且不直接引用丢失的“.metaproj”文件):
  • TFS 2013 building .NET 4.6 / C# 6.0
  • C# 6.0 TFS Builds
  • Running TFS Build with C# 6.0 features

  • 因此,总而言之,我对构建服务器进行了以下更改:
  • 已安装 Visual Studio 2015 更新 2
  • 更改了执行构建的 PowerShell 脚本

  • 来自 :

    msbuild '..\MyApplication.sln'/t:Build/p:Configuration=Release/p:RunCodeAnalysis=Always/p:VisualStudioVersion=12.0

    :

    msbuild '..\MyApplication.sln'/t:Build /tv:14.0/p:GenerateBuildInfoConfigFile=false /p:Configuration=发布/p:RunCodeAnalysis=始终/p:VisualStudioVersion= 14 .0

    笔记:
  • 如果我登录到构建服务器并尝试编译解决方案
    使用 VisualStudio 2015 那么这工作正常。
  • 在上面提到的一篇文章中,它讨论了从
    “TfvsTemplate.11.1.xaml”到“TfvsTemplate.12.xaml”。但就我而言
    不能说,我不使用或引用这个。也许我错了
    在这里,在这种情况下,白痴的下一步该怎么做的指南将是
    感激地收到。
  • 最佳答案

    最后......我们修复了它。

    我必须在构建服务器上采取以下步骤:

  • 已安装 VS2015 更新 2
  • 编辑环境变量“PATH”以从 C:\Program Files (x86)\MSBuild\12.0\Bin\更改一项设置;到 C:\Program Files (x86)\MSBuild\14.0\Bin\;
  • 因为我们使用 TeamCity 来触发一个 PowerShell 脚本,而该脚本又会触发 MSBuild。我将 PowerShell 模块 PSAKE 从 4.2 更新到 4.6(但这可能不是必需的)
  • 创建了一个新的环境变量“MSBuildEmitSolution”并将其值设为“1”
  • 将文件“Microsoft.Build.Tasks.v12.0.dll”从“C:\Program Files (x86)\MSBuild\12.0\Bin\amd64”复制到“C:\Program Files (x86)\MSBuild\14.0\斌\amd64"。不知道为什么这会在我们的 BUILD 日志中报告为错误,因为它不是 AMD 机器...
  • 使用 NUGET,必须将包“Microsoft.Net.Compilers”添加到每个使用 C#6 语法的 C# 项目(基本上都是)

  • 并非上述所有步骤都是绝对必要的,但我建议肯定需要步骤 1. 和 5.。

    高温高压

    格里夫

    关于msbuild - 使用 C#6 构建 TeamCity,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36724809/

    相关文章:

    azure - Azure 中的 Visual Studio Team Services 构建服务器

    rest - 所有构建类型的最后 10 天的 TEAMCITY REST API 列表

    c# - 如何配置自动化测试以在不同的时间表中运行?

    tfs - Cake Build 自动合并功能

    c# - 什么是 VS2013 中的 LinqToXsdSchema 构建操作?

    c# - 关于 .net 核心的 csproj 格式的完整文档在哪里?

    tfs - 向 Team Foundation Server 添加提交后/ checkin Hook ?

    c++ - TeamCity 中的 Qt 测试输出

    msbuild - 如何将构建定义从 TFS2010 克隆/复制到 TFS2012

    visual-studio-2012 - 使用数据库项目在tfsbuild中生成错误