Search code examples
c#consolevisual-studio-2017console-application.net-core-2.0

Error message "CS5001 Program does not contain a static 'Main' method suitable for an entry point"


Unable to execute the following code error CS5001 Program does not contain a static 'Main' method suitable for an entry point

What does this error message mean?

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

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

Solution

  • It means that you don't have a suitable entry point for your application at the moment.

    That code will nearly work with C# 7.1, but you do need to explicitly enable C# 7.1 in your project file:

    <LangVersion>7.1</LangVersion>
    

    or more generally:

    <LangVersion>latest</LangVersion>
    

    You also need to rename MainAsync to Main. So for example:

    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>
    

    ... builds and runs fine.