TeamCity C# compile error: Invalid expression term 'int'

TeamCity C# compile error: Invalid expression term 'int'

本地编译的项目(针对 .NET Framework 4.6.1)在 TeamCity 上失败并显示以下消息:

[CoreCompile] Csc [Csc] Using shared compilation with compiler from directory: C:\Program Files (x86)\MSBuild.0\bin

[19:02:15][Csc] Services\MyFile.cs(20, 55): error CS1525: Invalid expression term 'int'

[19:02:15][Csc] Services\MyFile.cs(20, 59): error CS1003: Syntax error, ',' expected

我在失败的编译中也得到了很多红字:

[Step 5/9] The target "MvcBuildViews" listed in a BeforeTargets attribute at "C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\Web\Microsoft.Web.Publishing.targets (845,131)" does not exist in the project, and will be ignored.

首先,如果它可能对任何人有帮助,当 TeamCity 的一个步骤失败时,该步骤中的很多文本将变成红色(甚至只是警告),所以一开始我 运行 陷入了僵局-最后相信第二条错误消息是问题所在。不是。

事实证明,我的 Resharper 2016.3.2(在 Visual Studio 2017 年)更改了以下内容

int newInt;
if (!int.TryParse(theChar.ToString(), out newInt))
    return false;

进入

if (!int.TryParse(theChar.ToString(), out int newInt))
    return false;

通过 Alt+Enter 重构调用 "Inline variable declaration"(这通常听起来很无害)我当时想,好吧。

这不会在本地造成任何问题,因为它是 c# 7 语法,但在我的 TeamCity 构建代理上,编译器会因为 MSBuild 版本太低而失败。