TeamCity无法构建使用C# 7的项目

15

我们最新的代码更新中添加了新的输出变量语法,但TeamCity在此时抛出了错误:

if (Enum.TryParse(input, out MyProject.ClassificationType classification))
{
    result.Classification = classification;
}

TeamCity抛出了以下错误:

[Csc] MyProject\MyCode.cs(125, 111): error CS1003: Syntax error, ',' expected

在Visual Studio中,代码可以成功构建和运行。

2个回答

28

TeamCity Agent机器上的MSBuild已过期,仅使用Microsoft Build Tools 2015。

我可以通过下载安装此处找到的新的Visual Studio 2017构建工具来解决此问题:

https://www.visualstudio.com/downloads/ -> 其他工具和框架 -> Visual Studio 2017构建工具 -> 下载

或者直接跳过垃圾邮件,点击这里:https://www.visualstudio.com/thank-you-downloading-visual-studio/?sku=BuildTools&rel=15

更新TeamCity的构建步骤,使用MSBuild 15或Visual Studio 2017进行构建。


MSBuild 15和Visual Studio 2017有什么区别? - Avrohom Yisroel
"MSBuild"和"Visual Studio (.sln)"是在设置构建步骤时两种不同的运行器类型。 - Kcoder
抱歉我比较蠢,对于配置TC并不是很了解。有人让我调查如何将C#7安装到其中,但我不确定你所说的不同运行器类型是什么意思。能否请您解释一下?谢谢。 - Avrohom Yisroel

2

按照Kcoder的建议安装 Visual Studio 2017 的构建工具,然后调整 Team City 中的构建步骤(示例):

Switching to VS 2017 build inside Team City

如果使用 MSBuild 作为构建步骤,则可以调整类似的设置。


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