Visual Studio 2017使用C#7.2发布ASP.NET Core应用程序

adr*_* h. 10 c# azure asp.net-core visual-studio-2017

我有一个正在使用的Asp.Net MVC Core网站public static async Task Main().为了实现这一点,我将语言版本设置为C#7.2(在属性 - >构建 - >高级对话框中,在csproj中双重检查)以进行调试和发布构建配置.

App在Debug和Release模式下构建并启动良好.

现在,我正试图直接从Visual Studio 2017 15.5.2(使用WebDeploy)将其发布到Azure网站,我得到了这个:

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一些标志,可能其中一个是错的?

任何人都知道这是一个已知问题还是我做错了什么?

Chr*_*att 2

本身不是答案,但它的价值async Main只是语法糖。Roslyn 在幕后只是添加了标准void Main包装器结构:

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

static async Task MainAsync(object[] args)
{
    // your code
}
Run Code Online (Sandbox Code Playgroud)

可能不值得您花时间尝试让服务器在 C# 版本的同一页面上,只是为了节省三行代码。