TeamCity C#编译错误:无效的表达式术语' int'

时间:2017-05-15 17:55:21

标签: msbuild teamcity visual-studio-2017

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

  

[CoreCompile] Csc [Csc]使用目录中编译器的共享编译:C:\ Program Files(x86)\ MSBuild \ 14.0 \ bin

     

[19时02分15秒] [CSC]   Services \ MyFile.cs(20,55):错误CS1525:无效的表达式术语   ' INT'

     

[19:02:15] [Csc] Services \ MyFile.cs(20,59):错误CS1003:语法   错误,','预期

我在红色写作的失败编译中也得到了很多这些:

  

[步骤5/9]目标" MvcBuildViews"列在BeforeTargets中   属性在" C:\ Program Files   (86)\的MSBuild \微软\ VisualStudio的\ v14.0 \网络\ Microsoft.Web.Publishing.targets   (845131)"在项目中不存在,将被忽略。

1 个答案:

答案 0 :(得分:7)

首先,如果它可以帮助任何人,当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 + 输入重构名为 "内联变量声明" (其中通常听起来很无害)而我当时就好了。

这在本地没有造成任何麻烦,因为它是一个c#7语法的东西,但在我的TeamCity构建代理上,由于MSBuild版本太低,编译器会失败。