2017-12-29 22 views
9

Ich habe eine Asp.Net MVC Core-Website, die public static async Task Main() verwendet. Damit dies funktioniert, habe ich die Sprachversion auf C# 7.2 (im Eigenschaften -> Build -> Erweitert-Dialog, doppelt in der csproj) für Build-Konfigurationen Debug und Release festgelegt.Visual Studio 2017 veröffentlichen ASP.NET Core App mit C# 7.2

App wird erstellt und startet sowohl im Debug- als auch im Release-Modus einwandfrei.

Nun, ich versuche es zu einer Azure-Website zu veröffentlichen direkt von Visual Studio 2017 15.5.2 (mit WebDeploy) und ich bekomme diese:

Program.cs (17,29): Fehler CS8107: Feature 'async main' ist nicht verfügbar in C# 7.0. Bitte verwenden Sie die Sprachversion 7.1 oder höher. CSC (0,0): Fehler CS5001: Programm eine statische ‚Main‘ Methode geeignet für einen Einstiegspunkt nicht

Im Ausgabefenster enthält ich es sehe läuft C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin\Roslyn\csc.exe mit einigen Fahnen, wahrscheinlich einer von ihnen ist falsch?

Wer weiß, ob dies ein bekanntes Problem ist oder ich etwas falsch mache?

Antwort

1

Keine Antwort, per se, aber für was es wert ist async Main ist nur syntaktischer Zucker. Hinter den Kulissen Roslyn fügt nur den Standard void Main Wrapper Bau:

static void Main(object[] args) 
{ 
    MainAsync(args).GetAwaiter().GetResult(); 
} 

static async Task MainAsync(object[] args) 
{ 
    // your code 
} 

Es ist wahrscheinlich Ihre Zeit mit dem Versuch nicht wert den Server auf der gleichen Seite C# -Version weisen, bekommen nur buchstäblich drei Zeilen Code zu speichern.

+0

Ja, ich habe in der Zwischenzeit darauf zurückgegriffen, da ich die Quelle des Problems nicht finden kann –

1

Dies scheint ein Fehler in Visual Studio zu sein. diese Zeile in der Haupteigenschaftsgruppe in der CSPROJ Datei für mich das Problem behoben Hinzufügen:

<LangVersion>latest</LangVersion>

Das Problem auch here im ASP.NET Startseite Repository berichtet wurde.

Verwandte Themen