.NET Core 2.1引入了一個新的功能,Global Tools,其本質是包含控制台應用程序的nuget包,目前而言,還沒有特別有用的工具,不過相信隨着時間的推移,各種有創意或者實用性強的Global Tools會出現在大家的視野里。
安裝一個Global Tools很簡單,輸入一條命令dotnet tool install -g dotnetsay
,名為dotnetsay的工具便已經安裝在特定目錄下。
OS | Path |
---|---|
Linux/macOS | $HOME/.dotnet/tools |
Windows | %USERPROFILE%.dotnet\tools |
想要使用工具的話則需要輸入該工具對應的命令,比如dotnetsay
:
雖然Global Tools屬於nuget包的一類,但由於nuget官網上並沒有將其特別分類,所以不知道其名字的話,很難從眾多nuget包中搜尋出來。較好的方法是在Github的natemcmaster/dotnet-tools庫中找到所需的工具。
粗粗過了一遍,例如dotnet-serve,dotnet-search,dotnet-md5等個人覺得還是挺有用的。
但有些工具在安裝完后,會顯示指定版本的framework沒有被找到的錯誤。在兼容性方面Global Tools還有待改善。
想要自己創建一個Global Tools也不是件困難的事情。
因為Global Tools其實就是個控制台應用程序,那么首先即是new一個這樣的程序。dotnet new consoel -o helloGlobalTools
。
代碼內容很簡單,顯示包含當前時間的一串字符:
using System;
namespace helloGlobalTools
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine($"Hello {DateTime.Now}");
}
}
}
在csproj文件中的PropertyGroup節點內需要加入<PackAsTool>true</PackAsTool>
。
通過dotnet pack
命令可以在bin\Debug目錄下生成helloGlobalTools.1.0.0.nupkg安裝包文件。
將當前目錄切換成該文件的路徑,然后執行Global Tools安裝命令dotnet tool install -g helloGlobalTools --add-source ./
。完成安裝后還可以通過dotnet tool list -g
進一步確認是否已成功安裝。
最后便是輸入你的工具命令名,得到所期望的結果。
當然,如果你對自己的作品有信心,同時又想分享給其他人的話,還可以將nuget包上傳至nuget.org的官方網站。這樣你的勞動成果便可以最大化的發揮價值了。
參考文檔: