.NET Core CLI 簡介
完全以 command 方式管理 .NET Core
.NET Core 為了要跨平台,在 .NET Core SDK 提供了全套的 CLI,讓我們可以完全用 command 方式管理專案。
Version
macOS High Sierra 10.13.3
.NET Core SDK 2.1.101
為什麼要用 Command ?
傳統 .NET Framework 都是在 Visual Studio 以 GUI 方式操作,GUI 對 End User 是友善的,但對 Developer 與 DevOps 而言卻不見得友善 :
- GUI 很難自動化,但 command 很適合寫 script 自動化,而且可以 git 版控
- 若要遠端管理 server,GUI 只能透過 Remote Desktop,但 command 只要 SSH 就可執行
- Command 可以寫在 Dockerfile 內,但 GUI 無法
- .NET Core 最新功能會先在 SDK 支援,Visual Studio 支援稍慢於 SDK
- Command 適合在 macOS 與 Linux 執行
這也是為什麼目前潮流是 End User 與 Designer 使用 GUI,但 Developer 與 DevOps 使用 command。
.NET Core 全部的動作都可以使用 command 執行。
就類似學 Git 要從 command 開始學,只要原理懂,自然會使用 Visual Studio / Rider 的 GUI
.NET Core SDK Command
1 | $ dotnet help |
列出全部 .NET Core SDK 指令的說明。
- dotnet help : 顯示所有 command 與 option 的文件
- dotnet new : 根據指定 template 建立 project
- dotnet restore : 根據
*.csproj
的資訊 restore dependency - dotnet run : 執行 .NET Core 應用程式
- dotnet build : 編譯 .NET Core 應用程式為 assembly (dll)
- dotnet publish : 發布 .NET Core 應用程式
- dotnet test : 執行 .NET Core 單元測試
- dotnet pack : 建立 NuGet package
- dotnet migrate : 將 project.json 專案升級到 msbuild 專案
- dotnet clean : 將之前編譯的 assembly (dll) 刪除
- dotnet sln : 管理 solution 檔
- dotnet add : 新增 project reference 或 package reference
- dotnet remove : 移除 project reference 與 package reference
- dotnet list : 列出 project 所有的 reference
- dotnet nuget : 執行 NuGet command
- dotnet msbuild : 執行 MSBuild
- dotnet vstest : 對 assembly 執行單元測試
Conclusion
- 透過 .NET Core SDK,我們可以完全使用 command 的方式管理專案,完全不需要 GUI