gpt4 book ai didi

c# - Visual Studio + Docker - 使用“编辑并继续”调试应用程序?

转载 作者:太空宇宙 更新时间:2023-11-03 14:43:36 25 4
gpt4 key购买 nike

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

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

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

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

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

任何人都可以为此指出正确的方向吗?我找到了一些指南,但它们已有数年历史,并且倾向于引用 VS/.NET Core 中似乎过时的功能。

最佳答案

作为 Docker 的新手,我也一直在努力解决这个问题。但是我觉得这个问题与 .NET Core 3/Visual Studio 2019 的关系比 Docker 更大。

我设法通过引用获得静态文件和 Razor 文件以立即反射(reflect)变化:

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文件确实会立即得到反射(reflect)。 (注意:这可能在安装此更新之前一直有效)。但是 Razor 的变化仍然没有。为了解决这个问题,我必须添加以下 Nuget 包:

Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation

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

services.AddControllersWithViews().AddRazorRuntimeCompilation();

然后,当启动 docker 时,对 Razor 页面的更改现在也会立即反射(reflect)出来。但是仍然无法使 C# 更改生效。

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

关于c# - Visual Studio + Docker - 使用“编辑并继续”调试应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55573294/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com