繁体   English   中英

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

[英]Visual Studio + Docker - Debugging applications with Edit and Continue?

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

为此,我完成了创建项目时启用Docker支持的常规步骤,并且-由于我正在使用其他容器-通过单独的docker-compose项目添加了业务流程支持,而我又通过常规添加->容器编排支持菜单。

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

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

我已经看到在Docker中使用C#可以进行Edit and Continue的一些提及,但我似乎无法做到这一点。 该编辑器是只读的,我只能通过关闭系统来进行修改。 即使可以,再次构建项目也需要VS退出调试(这又会使系统瘫痪)。

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

我也一直在为此苦苦挣扎,对Docker来说是新手。 但是我觉得问题比Docker与.NET Core 3 / Visual Studio 2019更相关。

我设法通过引用获取静态文件和剃须刀文件以立即反映更改:

https://docs.microsoft.com/zh-cn/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 cosss平台开发工作量并进行了更新)。

然后我发现,当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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM