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 版本太低而失败。
本地编译的项目(针对 .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 版本太低而失败。