三行腳本讓 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 進程

publish-run.bat

因爲前後端是並行開發的,數據對接的過程中,如果改動一下就編譯接口就不太合適,就需要發佈運行,可使用下面的腳本快速發佈
發佈腳本如下,刪除進程,重新發布,再次運行即可

taskkill /F /T /FI "WINDOWTITLE eq Dotnet.Web.Publish" /IM dotnet.exe
dotnet publish -c Release
start "Dotnet.Web.Publish" /D "./bin/Release/netcoreapp2.2/publish/" dotnet Dotnet.Api.dll --urls http://*:2333
exit

腳本執行

在 vs2017 中如果想要快速的執行腳本,可在【工具-擴展和更新】中安裝擴展OpenCommandLine

安裝完成後即可方便的執行腳本了。

總結

邊寫邊查資料的過程中,一步步查找資料最後翻到了 GitHub 的 issues#2007
發現早就有人提出問題,也給出瞭解決方案 start "My App" dotnet MyApp.dll~
本文對解決方案進行了補充完善,使其得以更加方便快捷使用。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章