Visual Studio + Docker - 如何使用“编辑和继续”调试应用程序?

3
我正在使用Visual Studio和Docker托管ASP.NET Core应用程序。我创建项目时启用了Docker支持,并通过“添加” - >“容器编排支持”菜单添加编排支持,因为我使用其他容器。现在,我可以使用VS中的“Debug”按钮在本地启动容器,然后使用“Docker Compose”配置。我可以调试等操作。但是,如果我想要修改代码并尝试它,就必须重新启动整个过程(即compose up and down),这会非常耗时(超过一分钟),而该项目本身仅需要几秒钟构建时间。我看到有人提到C#与Docker可以进行编辑和继续操作,但我好像无法实现。我的编辑器只读且仅能通过关闭系统进行修改。即使我能够进行修改,重新构建项目也需要退出调试模式(这将再次关闭系统)。请问有什么解决方法吗?我已经找到了一些指南,但它们都是几年前的,而且通常涉及VS / .NET Core中已过时的功能。

你找到解决方案了吗? - Guerrilla
嗨@Guerrilla,抱歉回复晚了。不幸的是,我还没有找到解决方案。 - Barguast
1个回答

1
我也在这方面苦苦挣扎,因为我是 Docker 的新手。然而,我有一种感觉,问题更与 .NET Core 3/Visual Studio 2019 相关,而非 Docker。
我通过参考以下内容,成功使静态文件和 Razor 文件立即反映更改:

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 安装程序,修改 Visual Studio 2019 并选中 .NET Core 跨平台开发工作负载并更新)。
然后我发现当 Docker 网站运行时,更改静态 CSS 文件会立即反映出来。(注意:在安装此更新之前可能已经可以使用)。 但 Razor 更改仍然没有反应。 为了解决这个问题,我不得不添加以下 Nuget 包:

Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation

然后在 Startup.cs 中添加 AddRazorRuntimeCompilation()

services.AddControllersWithViews().AddRazorRuntimeCompilation();

当启动docker时,Razor页面的更改现在也可以立即反映出来。但是仍然无法使C#更改生效。

但是似乎存在与.NET Core 3和编辑和继续相关的问题。也许当它们得到解决时,它也将与Docker Compose一起工作。 https://github.com/aspnet/AspNetCore/issues/14712


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接