The Will Will Web | 體驗 .NET Core 2.1 全新的全域工具安裝與使用 (.NET Core Global Tools)

The Will Will Web

記載著 Will 在網路世界的學習心得與技術分享

體驗 .NET Core 2.1 全新的全域工具安裝與使用 (.NET Core Global Tools)

.NET Core SDK 已經來到 2.1.300-preview2 版本,這個版本在安裝 .NET Core Global Tools 的時候,跟前一版 Preview 不太一樣,這導致網路上有許多文章的命令都是錯誤的,所以肯定有些人會鬼打牆一段時間,所以特別寫篇文章帶大家認識這個好用工具。

微軟有個 dotnetsay 範例專案,可以帶你嘗試 .NET Core Global Tools 的基本使用方式。在嘗試新功能之前,請務必檢查你的 .NET Core SDK 已經安裝到最新版本:

dotnet --info

接著,你可以透過以下 dotnet tool install -g dotnetsay 命令,來安裝 dotnetsay 工具!(以前是 dotnet install tool 命令)

安裝成功後,預設就可以直接執行 dotnetsay 的全域工具,相當便利!

接著透過 dotnet tool list -g 就可以列出目前已安裝的全域工具,透過 dotnet tool uninstall -g dotnetsay 就可以立即解除安裝!

 

這裡所安裝的 .NET Core Global Tools,各位千萬不要誤會,安裝的過程預設都會自動從 NuGet 下載套件並自動安裝在目前使用者目錄下 ( %userprofile%\.dotnet\tools ),並不是真的安裝在「所有使用者」。我第一次看見「全域」這個字詞,會直覺認為所有使用者都可以執行這個命令,但事實上並不行!如果你安裝了工具,該目錄下也有執行檔存在,卻無法執行,那就意味者你的 PATH 環境變數沒有指向到正確的路徑,你只要手動調整一下即可。

 

除此之外,要自行開發 .NET Core Global Tools 也非常容易,基本上就是寫一個 Console 應用程式而已,只要在你的 *.csproj 專案檔 (MSBuild Configuration File) 中加入一個 <PackAsTool>true</PackAsTool> 即可,然後執行 dotnet pack -c release -o nupkg 就會自動封裝成必要的 NuGet 套件,到時將套件上傳到 NuGet 即可完成工具部署。

注意:目前 Preview 2 版本要在本地測試部署的時候,需要建立一個 nuget.config 檔案才能進行本地測試部署,詳情請見這裡

 

另外,我也推薦另外一套 .NET Core Global Tool 名叫 dotnet-serve,這是一套極度輕量的 HTTP 伺服器。當透過 dotnet tool install --global dotnet-serve 安裝成功後,除了可以直接用 dotnet serve 快速啟動簡易 HTTP 伺服器外,也可以透過 dotnet serve --razor 快速啟動支援 Razor Pages 的 HTTP 伺服器。我正在期待作者添加更多選項設定,相信日後功能還會漸漸完善。

 

最後,我還想特別提及 ASP.NET Core 在 2.0 版以前,如果需要安裝擴充的 .NET Core CLI 工具,都需要額外安裝 ( 請參考 .NET Core CLI tools extensibility model ),例如 dotnet watchdotnet user-secretsdotnet sql-cachedotnet-dev-certs 等等。如果你想查詢各命令用法,在命令後面加上 --help 即可查詢使用說明。現在這些工具都已經內建在 .NET Core SDK 裡面,不用再額外安裝了!完整說明請見 aspnet/DotNetTools 專案。

 

相關連結