web-dev-qa-db-ja.com

エラーメッセージ「CS5001プログラムには、エントリポイントに適した静的な「メイン」メソッドが含まれていません」

次のコードエラーを実行できませんCS5001プログラムには、エントリポイントに適した静的な 'Main'メソッドが含まれていません

このエラーメッセージはどういう意味ですか?

class Program
{
    static async Task MainAsync(string[] args)
    {
        Account.accountTest accountTest = new Account.accountTest();

        bool result = await accountTest.CreateAccountAsync();
    }
}
50
001

これは、現時点ではアプリケーションに適したエントリポイントがないことを意味します。

このコードはほぼ C#7.1で動作しますが、プロジェクトファイルでC#7.1を明示的に有効にする必要があります。

<LangVersion>7.1</LangVersion>

またはより一般的に:

<LangVersion>latest</LangVersion>

また、MainAsyncの名前をMainに変更する必要があります。たとえば、次のとおりです。

Program.cs:

using System.Threading.Tasks;

class Program
{
    static async Task Main(string[] args)
    {
        await Task.Delay(1000);
    }
}

ConsoleApp.csproj:

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>netcoreapp2.0</TargetFramework>
    <LangVersion>7.1</LangVersion>
  </PropertyGroup>
</Project>

...ビルドして正常に動作します。

146
Jon Skeet