2017-12-29 39 views
9

私はpublic static async Task Main()を使用しているAsp.Net MVCコアWebサイトを持っています。それがうまくいくためには、私は言語バージョンをC#7.2(プロパティ - >ビルド - >詳細ダイアログで、csprojでダブルチェック)に設定しました。Visual Studio 2017 C#7.2でASP.NETコアアプリケーションを公開

アプリは、デバッグモードとリリースモードの両方で正常にビルドして起動します。

今、私は(WebDeploy付き)のVisual Studio 2017 15.5.2から直接AzureのWebサイトに公開しようとしていると私はこれを取得:

のProgram.cs(17,29):エラーをCS8107:機能 'async main'は利用できません C#7.0。言語バージョン7.1以上を使用してください。 CSC(0,0):エラー CS5001:プログラムは に適した静的な「メイン」メソッドが含まれていないエントリポイント出力]ウィンドウで

は、私はそれはおそらく、いくつかのフラグとそれらのいずれかをC:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin\Roslyn\csc.exeを実行している見ます間違っている?

これは既知の問題であるか、間違っているのですか?

答えて

1

答えはそれ自体ではありませんが、価値があるのはasync Mainです。構文的な砂糖です。舞台裏ロスリンは、標準void Mainラッパーの建設を追加します。

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

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

それはちょうど、文字通り3行のコードを保存するために、同じページのC#のバージョンごとにサーバーを取得しようと、おそらくあなたの時間の価値はありません。

+0

私は問題の原因を見つけることができないため、私はその間にこれに復帰しました –

1

これはVisual Studioのバグです。私のために問題を解決し.csprojファイル内のメインプロパティグループに次の行を追加し :

<LangVersion>latest</LangVersion>

問題は、ASP.NETホームリポジトリにhereを報告しました。

関連する問題