只有累積,沒有奇蹟

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:

  • [.NETCore] ASP.NET Core DI 生命週期 LifeTime前言 最近在 Code Review 時主管提到關於 ASP.NET Core 的一些基本觀念,發現自己對於 .Core DI Service lifetime 部分有些模糊,在 .NET Core 中整個框架建立在 DI ( Dependency Injection) 之上,到處都可以看到 DI 的影子,因此決定寫篇文章釐清自己的觀念,若有問題或是有更推薦的方法歡迎提出一起討論或是給予指導。 .NET Core DI .NET … Read More
  • [.NETCore] ASP.NET Core 學習資源包 - awesome dotnetcore前言 最近比較多機會嘗試有興趣的新技術,在學習過程中勢必會遇到很多疑難雜症;像是最近新專案使用 ASP.NET Core 開發,有些觀念如果你 ASP.NET Framework 習慣了轉到新的會需要點時間,這時如果有份清單整理技術領域相關內容是在好不過的了;今天要分享的是 github 上的 awesome dotnet core,集合群眾的力量整理 ASP.NET Core 的學習資源與相關 Library 資訊,另外如果有好康的想要分享給大… Read More
  • [.NETCore] 安裝 Entity Framework Core前言 最近在開發專案時要在 .NET Core 下使用 ORM 進行資料庫操作,第一直覺當然是用微軟強大的 Entity Framework 來解決,但實際操作後發現在 ASP.NET Core 下建立 Entity Framework Core 目前沒有過去 .NET Framework 下 Entity Framework 6.x 操作上來的方便,這篇文章就來介紹安裝 Entity Framework … Read More
  • [.NETCore] 安裝 Entity Framework Core - 使用 EF Core Power Tool前言 在上一篇介紹了 安裝 Entity Framework Core 文章中說明如何透過指令方式產生 DBContext 物件,今天在搜尋 EF Core 相關資料時發現 mkrt 大推薦的工具 - Visual Studio 2017 擴充功能 - EF Core Power Tools,原來除了指令之外也可以透過擴充工具達到同樣結果,打鐵要趁熱,這篇文章就來介紹如何使用 EF Core Power Tools,若有問題歡迎提出一起… Read More
  • [.NETCore] Entity Framework Core 初體驗 前言 前面兩篇文 安裝 Entity Framework Core、使用 EF Core Power Tool 分享了在 .NET Core 如何使用 EF Core 產生已存在 DB Table 模型物件,仔細回想一下分享內容過於片段可能無法讓人抓到重點,因此決定再寫一篇分享 EF Core DB First 在 .NET Core 中操作與設定,此篇文章包含新增下列項目 範例 .NET Core 專案 建立 DB Tab… 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