Visual Studio + DockeR语言 使用"编辑并继续"调试应用程序?



我正在使用Visual Studio开发一个 ASP.NET Core应用程序,该应用程序由Docker托管。

为此,我在创建项目时完成了启用 Docker 支持的常规步骤,并且 - 因为我使用的是其他容器 - 通过单独的 docker-compose 项目添加编排支持,我再次通过通常的添加 -> 容器编排支持菜单。

我现在可以使用 VS 中的调试按钮,使用"Docker Compose"配置在本地启动容器。我可以命中断点等。

但是,为了实际修改代码并尝试它,我必须每次重新启动整个过程(即上下组合)整个系统。对于在几秒钟内构建的项目进行更改来说,这已经非常耗时(超过一分钟)。

我已经看到一些提到使用 Docker 在 C# 中可以编辑和继续,但我似乎无法做到这一点。编辑器是只读的,我只能通过关闭系统进行修改。即使我可以,再次构建项目也需要 VS 从调试中出来(这会再次导致系统崩溃)。

谁能为此指出我正确的方向?我找到了一些指南,但它们已经有好几年的历史了,并且倾向于引用VS/.NET Core中似乎已经过时的功能。

我也一直在为此苦苦挣扎,我是 Docker 的新手。但是,我觉得这个问题与.NET Core 3/Visual Studio 2019有关,而不是Docker。

我设法通过参考以下内容立即获得静态文件和剃须刀文件以反映更改:

https://learn.microsoft.com/en-us/aspnet/core/host-and-deploy/docker/visual-studio-tools-for-docker?view=aspnetcore-3.0

我从上面的链接中做的部分是: 确保为我的Visual Studio 2019加载了.NET Core跨平台开发工作负载。(打开了Visual Studio installer,修改了Visual Studio 2019,勾选了.NET Core coss-platform开发工作负载并进行了更新)。

然后我发现,当 docker 网站运行时,更改静态 css 文件确实会立即反映出来。(注意:这可能在安装此更新之前已经工作)。 但剃须刀的变化仍然没有。 为了解决这个问题,我必须添加以下Nuget包:

Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation

然后将AddRazorRuntimeCompilation()添加到 Startup.cs

services.AddControllersWithViews().AddRazorRuntimeCompilation();

然后,在启动 docker 时,对 Razor 页面的更改现在也会立即反映出来。但是仍然无法使 C# 更改正常工作。

但是.NET Core 3似乎存在问题,可以编辑并继续。也许当它们得到解决时,它也可以与 Docker Compose 一起使用。 https://github.com/aspnet/AspNetCore/issues/14712

最新更新