如何进行非 c# cshtml 更改并在不重新编译的情况下查看结果?

BVe*_*non 2 visual-studio visual-studio-debugging razor asp.net-core-mvc

现在我使用的是最新、最好的版本,我发现我的 cshtml 更改只有在我停止并重新启动我的应用程序后才能被识别。好吧,没问题……我明白了。我只需启用该功能即可允许 Visual Studio 重新编译我的更改。凉爽的。

嗯……不太酷。因为这需要永远。浪费大量时间。在此之前,我可以对 cshtml 进行所有我想要的更改,并且结果显示得很好。

有什么办法可以回到以前的样子吗?老实说,我不记得之前是否可以在不重新编译的情况下进行和观察 C# 代码更改(我是这么认为的,但也许不是)。但我确实知道我不必重新编译即可看到我的 html/css/js 更改。我尝试在我的观点中尽可能少地编写 C#...我所做的绝大多数更改都是 html/css/js。

当我需要能够在浏览器中快速地反复按 F5 来查看微小的样式变化,直到页面看起来恰到好处时,这实际上每天会占用我一个多小时的时间。

一定有办法解决这个问题吗?!

编辑:

写完这篇文章后,我意识到我在另一个 .NET 5.0 解决方案中没有遇到这种行为。但当时,该解决方案的速度仍然非常慢。刚才我尝试了 @PerryQian-MSFT 的建议,它似乎很有魅力……但是我不能说这是否真的解决了问题,因为我随后撤消了更改,现在它仍然可以快速工作。

我可能在此期间对 Visual Studio 2019 应用了更新,他们很有可能改进了某些内容,但我知道这不太可能。因此,不太确定应用佩里的步骤是否会触发解决问题的方法,或者如果我不做任何更改,今天是否会正常工作。

Mr *_*ian 5

ASP.NET Core项目的CShtml文件比较特殊,默认情况下修改调试过程中的页面时,它无法获取新的更改。

你必须另外对你的项目做一些更改,然后你才能得到它:

1)安装名为Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation的 nuget 包。

如果你的项目目标是net 5.0,你必须安装 nuget 版本5.0.x,如果它目标是net core 3.1,你必须安装 nuget 版本3.1.x

2)在文件中的ConfigureServices方法services.AddMvc().AddRazorRuntimeCompilation();下添加。Startup.cs

然后,开始调试您的项目,对cshtml文件进行更改,(不停止调试)刷新浏览器页面,您将得到您想要的内容。