三行脚本让 asp.net core 附加进程调试不再头痛

2019-08-29 12:21:13 浏览数 (1)

在将项目升级到 asp.net core 2.2 后,很少使用 IIS Express 运行项目了,基本都是控制台运行或者写个脚本批量启动要运行的接口(多个输出项目),一直以为是我机器的 bug 关于 vs 的 asp.net core 进程调试的这个问题困扰了我好一段时间未曾解决,得空整理记录一下。

问题描述

一顿操作猛如虎运行 dotnet run 很多个应用程序(前后端分离,多个项目运行的场景) 然后打开项目选择【调试-附加到进程】(.net framework 要附加到 w3wp.exe,.net core 要附加到 dotnet.exe)

看到这一排排的 dotnet.exe,一脸懵逼啊!(可能除了多项目还会有其他原因出现更多个,比如 redis 连接没关闭,https 的原因~)

如上图,完全不知道要附加到那个进程,最开始没找到解决方案(懒),直接就给全选了,后面找到解决方案才开始愉快的玩耍

解决方案

新建 run.bat,写入以下命令,每次运行时执行脚本运行即可

run.bat 脚本

代码语言:javascript复制
taskkill /F /T /FI "WINDOWTITLE eq Dotnet.Api1" /IM dotnet.exe
start "Dotnet.Api1" dotnet run
exit

脚本说明

  1. 关闭名字为“Dotnet.Api1”的 dotnet.exe 进程,新
  2. 启动一个标题为“Dotnet.Api1”的窗口运行 dotnet run 或者 dotnet watch run
  3. 退出 run.bat 的 cmd 进程

脚本执行

在 vs2017 中如果想要快速的执行脚本,可在【工具-扩展和更新】中安装扩展OpenCommandLine

安装完成后即可方便的执行脚本了。

总结

边写边查资料的过程中,一步步查找资料最后翻到了 GitHub 的 issues#2007 发现早就有人提出问题,也给出了解决方案 start "My App" dotnet MyApp.dll~ 本文对解决方案进行了补充完善,使其得以更加方便快捷使用。

0 人点赞