问题:.net core 无法附加IIS进程调式
以前在开发ASP.NET(MVC)项目的时候,为了加快程序的启动速度(调式),我们会选择使用IIS。先用IIS架设还在开发的项目,在需要调式的时候附加进程,而在更多时候,如果调整CSS和HTML或者JS会显得更加方便快速,而不用每次都在Visual Studio中按F5运行,只需要在浏览器中按F5刷新即可。然而到 .Net Core ,这一招不管用了。
解决方案:用dotnet命令来运行你的程序
- 在你的项目文件夹下加一个批处理,如:run.cmd
- 每次都到目录下双击Run.cmd 执行一下即可
@echo off
echo ASPNETCORE_ENVIRONMENT=Development
dotnet build
start "自定义项目名称" dotnet watch run --no-hot-reload
exit
Open Command Line 插件
- 为什么用?每次都到目录下双击 run.cmd ,有点太麻烦了。
- 所以在 Visual Studio 安装 Open Command Line 插件
下载地址:
https://marketplace.visualstudio.com/items?itemName=MadsKristensen.OpenCommandLine
https://marketplace.visualstudio.com/items?itemName=MadsKristensen.OpenCommandLine64
安装完以后
- 设置参数:/k dotnet watch run --no-hot-reload
- 右键项目->Open Command Line->Default 就可以了,这样方便多了。
附加进程
- 工具栏->调试->附加到进程->xxx.exe->附加
- 项目中加入断点,调用即可
备注
若要禁用热重载支持,请将 --no-hot-reload 选项传递给 dotnet watch 命令:
- 为什么要禁用 热重载呢?
- 因为改动代码后,热重载并不能真正实现差异化编译
- 禁用后,反而可以差异化编译,请自行尝试。
dotnet watch --no-hot-reload