在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)"在项目中不存在,将被忽略。
答案 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版本太低,编译器会失败。