跳至頁尾內容
Iron Academy Logo
學習C#
學習C#

其他類別

每位開發者應熟知的5個.NET CLI命令

[[academy-video-youtube({"vid": "aSmmh-F5KCw", "start_time": "0", "title": "5 Essential .NET CLI Commands Every Developer Should Know", "creator": "Tim Corey", "length": "9m 30s"})]]

大多數C#開發者把整個工作流程都放在IDE中,按下按鈕來編譯、啟動和測試他們的應用程式。 這樣行得通,直到行不通。 自動化管道、遠程伺服器和容器化環境沒有圖形介面,知道一些終端命令讓您在這些情況下保持高效,而不需要抓滑鼠。

在他的视频"5 Essential .NET CLI Commands Every Developer Should Know"中,Tim Corey介紹了五個.NET操作,它們涵蓋了日常開發中的大部分地面:publish。 每一個都有實用演示,顯示了不僅是語法,還有何時和為何使用它。 無論您對終端操作感到自如還是很少打開,這些都值得記住。

使用.NET --info檢查您的環境

[0:31 - 1:25] 在運行任何項目命令之前,Tim首先通過驗證開發環境開始。 dotnet --info更深入:

dotnet --info
dotnet --info
SHELL

這將列印出您機器上安裝的每個SDK和運行時版本,以及操作系統細節和活動架構。 Tim在.NET 10上進行了演示,但該命令在任何版本上都能同樣運行。 知道您已安裝的內容對於除錯版本不匹配或驗證CI伺服器與您的本地設置鏡像尤其有用。

Command 1: .NET build

[2:16 - 3:44] 第一個命令編譯您的項目而不啟動它:

dotnet build
dotnet build
SHELL

從項目目錄運行此命令,會讀取bin文件夾下生成編譯輸出。 Tim指出,編譯是一個獨立的步驟,與執行分開。 當您希望在推送到儲存庫或交給構建伺服器之前驗證您的程式碼編譯是否乾淨時,這種分離很重要。

.NET SDK在構建過程中處理依賴解析,拉取任何遺漏的NuGet包並確保所有引用的程式集都存在。 如果此階段失敗,錯誤資訊會直接指出問題所在,無論是缺少引用、語法錯誤還是目標框架不匹配。 在運行應用程式之前捕捉這些問題可以節省整體開發周期中的時間。

Command 2: .NET run

[3:44 - 5:42] run則邁出下一步並啟動應用程式:

dotnet run
dotnet run
SHELL

這將編譯項目(如果需要的話),然後執行生成的輸出。 對於控制台應用程式,這意味著在終端中運行它。 對於Web項目,內建的Kestrel伺服器會啟動,應用程式在本地URL上可用。

Tim演示了一個網頁應用程式,瀏覽到運行中的網站以確認一切載入正常。 run產生了一個實時的互動結果。 在積極開發期間,這是您最常用的命令來測試更改並查看其效果。

Command 3: .NET watch

[5:42 - 7:06] 停止應用程式,進行更改,然後重啟它容易變得單調乏味。 watch命令消除這個迴圈:

dotnet watch
dotnet watch
SHELL

這把運行過程封裝在文件監視器中。 當您保存對任何源文件的更改時,CLI會檢測到修改並自動重新編譯並刷新應用程式。 對於使用ASP.NET Core構建的Web應用程式來說,對Razor文件、CSS和C#程式碼的更改無需手動重啟即可顯示在瀏覽器中。

Tim展示了實時熱載入行為:編輯頁面、保存,並立即看到更新的顯示。 這種緊湊的反饋迴圈在UI工作中非常有價值,小的調整經常發生。 您不再需要經歷停止-編輯-重建-啟動的迴圈,而是專注於程式碼,讓工具處理其餘工作。

Command 4: .NET clean

[7:06 - 7:56] 構建工件隨時間累積在clean命令解決了這個問題:

dotnet clean
dotnet clean
SHELL

運行它會移除輸出目錄的內容,因此您後續的構建會從頭開始。 Tim將其視為一種故障排除工具,而不是每次更改後都運行的東西。 當您的項目行為異常,您懷疑是快取的輸出導致問題時,build能夠保證您正在處理真正的新編譯。

這個習慣在切換版本控制中的分支、將依賴項升級到新主要版本、或解決間歇性的構建警告(似乎無緣無故地出現和消失)時特別實用。

Command 5: .NET publish

[7:56 - 9:01] 最後一個命令填補了開發和部署之間的空隙:

dotnet publish
dotnet publish
SHELL

雖然publish則建立一個部署就緒的包。 編譯的程式集、配置文件、靜態資產以及任何所需的運行時組件會被放入一個publish文件夾中,您可以直接將其複製到伺服器。

publish之間的區分讓一些開發者措手不及。 build輸出包括在開發期間有用的除錯符號和引用,但在生產中不必要(有時甚至不希望)。 發布打包會剝離那些額外內容,並為其目標環境組織輸出。 當部署到Docker或上傳到雲端主機時,發布的輸出是您最後的映像或釋出包中應該包含的內容。

總結:五個命令,一個工作流程

[9:01 - 9:15] Tim在最後列出了所有五個命令:dotnet publish。 作為一套命令,它們涵蓋了從編譯到部署的核心開發迴圈。 每一個都有特定的用途,知道何時使用每個命令能提供的控制程度是單單按IDE按鈕所無法提供的。

結論

[9:15 - 9:30] 這五個CLI命令處理您在開發過程中最常執行的任務:編譯、運行、實時載入、清除舊輸出和打包釋放。 它們適用於每種.NET項目型別以及SDK支持的每個操作系統。

下次您打開終端時,無論是在本地機器、容器內部還是遠程伺服器上,您已經擁有了一套完整的開發迴圈詞彙表,而不需要一個圖形介面。

範例提示:您可以用build連結到一條命令。 這能保證一步到位的從零開始編譯,這在解決跨增量構建持續存在的問題時特別方便。

觀看完整影片在他的YouTube頻道,獲得更多關於.NET CLI基本要點的見解。

Hero Worlddot related to 每位開發者應熟知的5個.NET CLI命令
Hero Affiliate related to 每位開發者應熟知的5個.NET CLI命令

分享您所愛以賺取更多報酬

您是否為使用 .NET、C#、Java、Python 或 Node.js 的開發者建立內容?將您的專業知識轉化為額外收入!

Iron 支援團隊

我們線上24小時,每週5天。
聊天
電子郵件
給我打電話