簡體   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