web-dev-qa-db-fra.com

Message d'erreur "Le programme CS5001 ne contient pas de méthode statique" principale "adaptée à un point d'entrée"

Impossible d'exécuter l'erreur de code suivante CS5001 Le programme ne contient pas de méthode statique 'Main' adaptée à un point d'entrée

Que veux dire ce message d'erreur?

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

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

Cela signifie que vous ne disposez pas d'un point d'entrée approprié pour votre application pour le moment.

Ce code presque fonctionnera avec C # 7.1, mais vous devez activer explicitement le c # 7.1 dans votre fichier de projet:

<LangVersion>7.1</LangVersion>

ou plus généralement:

<LangVersion>latest</LangVersion>

Vous devez également renommer MainAsync en Main. Donc par exemple:

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>

... construit et fonctionne bien.

146
Jon Skeet