1. 程式人生 > >三行指令碼讓 asp.net core 附加程序除錯不再頭痛

三行指令碼讓 asp.net core 附加程序除錯不再頭痛

在將專案升級到 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

指令碼說明

  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~
本文對解決方案進行了補充完善,使其得以更加方便快捷使用