只有累積,沒有奇蹟

2019年5月26日 星期日

[NETCore] 使用 Dotnet Watch 自動編譯 ASP.NET Core 應用程式

前言
在開發完代碼的時候,為了確保代碼在應用程式執行的狀況,會在 Visual Studio IDE 使用偵錯模式 F5 或是 Ctrl+F5 進行偵錯,如果執行狀況不如預期時就會關閉偵錯,重新修改代碼在編譯再重新進行偵錯,簡單來說流程像是  改 Code > 編譯 Ctrl + Shift + B > 測試 F5 or Ctrl + F5 > 不如預期 > 改 Code  ,仔細想想這些動作都是重複的,如果可以省下重複的動作可以去做更有效益的事情,今天要分享的是 Dotnet watch tool,它可以檢查代碼有異動時重新啟動應用程式,減少修改完 Code 之後看到結果這之間所花費的時間,若有問題歡迎留言一起討論。

設定安裝
如果您的預設是 ASP.NET Core 2.0 以前的版本,需要在專案檔中加入下列 package,如果是 ASP.NET Core 2.1 以上的話,此工具會預設安裝再 .NET Core SDK 中
  1. Microsoft.DotNet.Watcher.Tools
在 Visual Studio 2019 專案點擊 Project 檔案可直接開啟,確認是否有安裝成功

使用方式
dotnet watch 可以監控當代碼進行修改時重新啟動應用程式,當我們在開發 Web API 或是 MVC 專案的時候,如果想要修改完畢之後立即看到成果這非常有用,也可省下時間增加生產力,如果是使用 IISExpress 時預設已經啟用。在 dotnet watch 中支援的 command 如下
使用方式相當簡單,可以透過以下簡單範例展示其效果,首先建立 ASP.NET Core API 專案,並使用  Ctrl + F5 執行,在預設的專案範本 ValueController 中 GET api/values 得到的結果會是 Value1與 Value2
  1. "value1",
  2. "value2"
接著在專案目錄下開啟 powershell,開啟之後輸入下列指令
  1. dotnet watch run
會開啟 dotnet watch 視窗
接著可以在原先的 value Controller 中修改輸出,改為 value11 以及 value22,更新完畢之後儲存,在儲存後可以看到開啟的 console 會偵測檔案有異動,會進行編譯與重新執行應用程式的動作
  1. watch : Exited
  2. watch : File changed: C:\Users\marcustung\source\repos\WebApplication1\WebApplication1\Controllers\ValuesController.cs
  3. watch : Started
接著在到開啟的瀏覽器按下 F5 重新整理,就可以看到 API 輸出已更新完新的內容,完整內容如下

感想
這篇介紹了 dotnet watch 最基本的應用情境,dotnet watch 除了可以自動編譯之外還支援測試等功能,在 MSDN 文章中也有介紹要監控/ 不要監控的設定方式,另外如果想了解 dotnet watch 是怎麼實作出來的也可以參考 GitHub : 傳送門,如果你也有跟我一樣的困擾想增加其工作效率,或許可以試用看看 dotnet watch :)

參考

Related Posts:

  • [VS2017] 如何修改 Visual Studio IDE 顯示語系 前言 目前筆電使用的 Visual Studio 是繁體中文版,在使用上用起來沒英文版那麼順,很多字詞在翻譯上總是讓人覺得驚喜,忍無可忍無須再忍決定改為英文版,過去 VS 可以透過下載的方式安裝語言包,但這招在 Visual Studio 2017 似乎無效(?,這邊簡單紀錄 Visual Studio 如何安裝不同語系的過程 設定語系 IDE 語系設定  設定方式 : 工具 > 選項 > 環境… Read More
  • [IIS] 如何解決網站第一個請求 Request 特別慢 ?問題 相信大家都有類似的經驗,在寫完的 Code 佈署到 IIS 開好網頁要準備要進入網站要測試時,網站的第一個請求總是特別慢,尤其是開發已久的程式要在 Production 驗證時心情總是特別緊張,這等待的時間更是讓人很煎熬(不知道會不會爆炸 XD),如何加速網站第一個 Request 呢 ? 過去待過的公司會在佈署完後透過 Jenkins 去打 Server 來 "喚醒" 它,在此簡單記錄一下如何透過 IIS 設定加速網站第一個 Reques… Read More
  • [UnitTest] Visual Studio 2017 按右鍵無法建立單元測試 ? 問題 最近心血來潮使用家中舊電腦小白寫 Code,在練習測試中發現竟然有點怪異,在要測試的 method 按下右鍵沒有 建立單元測試 Create Unit Test 選項,但相同練習專案拿到公司筆電就是正常的,經比對後發現舊筆電 Visual Studio 版本少安裝測試功能,以下簡單紀錄解決問題的過程 解決方案 在 Visual Studio 2017 早期版本這是已知問題,有開發者在 vs community 回報給開… Read More
  • [AWS] 使用 AWS SDK上傳檔案到 AWS S3前言 最近在與第三方做串接時,有個需求是要將圖片存起來放在 Application Server 上,與同事討論建議將圖片放在AWS S3 上,多年前有微軟剛推出 Azure 時有接觸過一些,但這幾年隨著年紀增長早已忘光光,這篇簡單紀錄 C# 透過 AWS SDK 將圖片上傳到 AWS S3 上的步驟與要注意的細節 AWS S3  Amazon Simple Storage Service 功能簡稱 S3,是Amazon的物件儲存服務,… Read More
  • [.NET] 無法載入檔案或組件 'Newtonsoft.Json' 或其相依性的其中之一 (發生例外狀況於 HRESULT: 0x80131040)問題 接獲同事報案,反應在測試環境出現以下錯誤訊息 無法載入檔案或組件 'Newtonsoft.Json, Version=11.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed' 或其相依性的其中之一。 找到的組件資訊清單定義與組件參考不符。 (發生例外狀況於 HRESULT: 0x80131040) ,實際專案底下 bin 資料夾該 dll 是存在的,心想這問題… Read More

1 則留言:

  1. Could not find a MSBuild project file in 'D:\WorkCode\diyi.smartbox\WebApi\bin\Debug\netcoreapp3.1'. Specify which project to use with the --project option.

    回覆刪除

Copyright © 2025 m@rcus 學習筆記 | Powered by Blogger

Design by Anders Noren | Blogger Theme by NewBloggerThemes.com