如何让 .NET 6.0 Hot Reload 在最简单的 "Hello, World" 控制台应用程序上运行?

How to make .NET 6.0 Hot Reload work on the simplest "Hello, World" console application?

考虑这个 C# 10 / .NET 6.0 / Visual Studio 2022 “Hello, World” 控制台应用程序:

// See https://aka.ms/new-console-template for more information

foreach (int _ in Enumerable.Range(0, 100))
{
    Console.WriteLine("Hello, World!");
    Task.Delay(1000).Wait();
}

如果我 运行 这个程序有调试,或者没有调试,将 World 更改为 Earth 然后保存文件并单击“Hot Reload”(应用代码更改)按钮什么都不做。程序继续写入控制台 Hello, World!.

我可以强制应用程序更改字符串而无需重新启动 而无需 使用热重载,而是使用 Edit and Continue,即在应用程序中断时进行更改模式。

我确实启用了热重载的所有选项:

为什么热重载不起作用?难道我做错了什么? blog post 声明它也适用于控制台应用程序。

如果您将 Task.Delay(1000).Wait() 更改为 await Task.Delay(1000),则保存时热重载将起作用。似乎当线程被阻塞时,热重载不想工作。