2017-05-15 3 views
1

Ein Projekt, das lokal (Targeting .NET Framework 4.6.1) kompiliert nicht auf Teamcity mit der folgenden Meldung:Teamcity C# Compiler-Fehler: Ungültige Ausdruck Begriff ‚int‘

[CoreCompile] Csc [Csc] Using shared compilation with compiler from directory: C:\Program Files (x86)\MSBuild\14.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

Ich habe auch eine Menge von diesem in dem ausgefallenen Kompilierung in roter Schrift:

[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.

Antwort

4

Erstens könnte, wenn es jemanden helfen, wenn Teamcity nicht einen Schritt, vielen Text in diesem Schritt wird in der Farbe (sogar nur Warnungen rot), also bin ich zuerst in eine Sackgasse geraten, weil ich glaubte, dass die zweite Fehlermeldung das Problem war. Es war nicht.

Es stellte sich heraus, mein ReSharper 2016.03.02 (auf Visual Studio 2017) hatte die folgende

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

in

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

über eine Alt + Geben Sie Refactoring genannt "Inline-Variablendeklaration" (was normalerweise ziemlich harmlos klingt) an d Ich war wie, nun, ok dann.

Dies verursachte lokal keine Probleme, da es eine C# 7-Syntax-Sache ist, aber auf meinem TeamCity-Build-Agent würde der Compiler aufgrund einer zu niedrigen Version von MSBuild fehlschlagen.

+2

Das wissen Sie wahrscheinlich schon, aber wenn Sie die neuesten Sprachenfunktionen von TeamCity verwenden möchten, müssen Sie die neueste Version der Build-Tools (von Chocolatey https://chocolatey.org/packages/microsoft-build) installieren -tools/15.0.26228.0) oder https://www.visualstudio.com/downloads/#build-tools-for-visual-studio-2017. –

+1

@BoyanKostadinov Danke, Alter. Ja, vorerst habe ich es einfach nicht umgesetzt. Ich war auch ziemlich verrückt danach, dass ich diese Notation noch nie gesehen hatte. Stellt sich heraus, ich hatte wirklich nicht: D –

+0

Ich hatte dies, aber es in Visual Studio kompiliert, aber TeamCity MSBuild verwendet. Seltsam, wie man es erlaubt, aber das andere nicht! –

Verwandte Themen