三行指令碼讓 asp.net core 附加程序除錯不再頭痛
阿新 • • 發佈:2019-08-28
在將專案升級到 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 指令碼
taskkill /F /T /FI "WINDOWTITLE eq Dotnet.Api1" /IM dotnet.exe
start "Dotnet.Api1" dotnet run
exit
指令碼說明
- 關閉名字為“Dotnet.Api1”的 dotnet.exe 程序,新
- 啟動一個標題為“Dotnet.Api1”的視窗執行
dotnet run
dotnet watch run
- 退出 run.bat 的 cmd 程序
指令碼執行
在 vs2017 中如果想要快速的執行指令碼,可在【工具-擴充套件和更新】中安裝擴充套件OpenCommandLine
安裝完成後即可方便的執行指令碼了。
總結
邊寫邊查資料的過程中,一步步查詢資料最後翻到了 GitHub 的 issues#2007
發現早就有人提出問題,也給出瞭解決方案 start "My App" dotnet MyApp.dll
~
本文對解決方案進行了補充完善,使其得以更加方便快捷使用