使用 .NET Core CLI 建立 .NET Core 全局工具

https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1&rsv_idx=2&ch=&tn=baiduhome_pg&bar=&wd=2017++Microsoft.DotNet.Watcher&rsv_spt=1&oq=Microsoft.DotNet.Watcher&rsv_pq=b7cd164100061809&rsv_t=e071JCefh5HVvMHUo%2BrBIa6zlXWvS1ZaPEXJ44pHRH5u45vPz8nc4XwPx1nHJ4ATNKL8&rqlang=cngit

 

  • olprod

本文介紹如何建立和打包 .NET Core 全局工具。 使用 .NET Core CLI,能夠建立一個控制檯應用程序做爲全局工具,便於其餘人輕鬆地安裝並運行。 .NET core 全局工具是從 .NET Core CLI 安裝的 NuGet 包。 有關全局工具的詳細信息,請參閱 .NET Core 全局工具概述github

本主題適用於:✓ .NET Core SDK 2.1 及更高版本vim

建立項目

本文使用 .NET Core CLI 建立和管理項目。app

咱們的示例工具是一個能夠生成 ASCII 自動程序並打印消息的控制檯應用程序。 首先,建立新的 .NET Core 控制檯應用程序。編輯器

console複製
dotnet new console -o botsay

導航到由先前命令建立的 botsay 目錄。工具

添加代碼

使用喜歡的文本編輯器(如 vim 或 Visual Studio Code)打開 Program.cs 文件。測試

將如下 using 指令添加到文件頂部,這有助於縮短代碼以顯示應用程序的版本信息。spa

C#複製
using System.Reflection; 

接下來,向下移動到 Main 方法。 將方法替換爲如下代碼,以便處理應用程序的命令行參數。 若是未傳遞任何參數,將顯示簡短的幫助消息。 不然,全部這些參數都將轉換爲字符串並使用自動程序打印。命令行

C#複製
static void Main(string[] args) { if (args.Length == 0) { var versionString = Assembly.GetEntryAssembly() .GetCustomAttribute<AssemblyInformationalVersionAttribute>() .InformationalVersion .ToString(); Console.WriteLine($"botsay v{versionString}"); Console.WriteLine("-------------"); Console.WriteLine("\nUsage:"); Console.WriteLine(" botsay <message>"); return; } ShowBot(string.Join(' ', args)); } 

建立自動程序

接下來,添加一個名爲 ShowBot 的新方法,該方法採用一個字符串參數。 此方法將輸出消息和 ASCII 自動程序。 ASCII 自動程序代碼摘自 dotnetbot 示例。code

C#複製
static void ShowBot(string message) { string bot = $"\n {message}"; bot += @" __________________ \ \ .... ....' .... .......... .............'..'.. ................'..'..... .......'..........'..'..'.... ........'..........'..'..'..... .'....'..'..........'..'.......'. .'..................'... ...... . ......'......... ..... . _ __ ...... .. # ## ...... .... . ....... ...... ....... ............ ................ ...................... ........................'................ ......................'..'...... ....... .........................'..'..... ....... ........ ..'.............'..'.... .......... ..'..'... ...............'....... .......... ...'...... ...... .......... ...... ....... ........... ....... ........ ...... ....... '...'.'. '.'.'.' .... ....... .....'.. ..'..... .. .......... ..'........ ............ .............. ............. '.............. ...........'.. .'.'............ ............... .'.'............. .............'.. ..'..'........... ............... .'.............. ......... .............. ..... "; Console.WriteLine(bot); } 

測試工具

運行項目並觀察輸出。 嘗試使用命令行的這些變體來查看不一樣的結果:

C#複製
dotnet run
dotnet run -- "Hello from the bot" dotnet run -- hello from the bot 

位於 -- 分隔符後的全部參數均會傳遞給應用程序。

安裝全局工具

在將應用程序做爲全局工具打包並分發以前,你須要修改項目文件。 打開 botsay.csproj 文件,並向 <Project><PropertyGroup> 節點添加三個新的 XML 節點:

  • <PackAsTool>
    [必需] 表示將打包應用程序以做爲全局工具進行安裝。

  • <ToolCommandName>
    [可選] 工具的替代名稱,不然工具的命令名稱將以項目文件命名。 一個包中能夠有多個工具,選擇一個惟一且友好的名稱有助於與同一包中的其餘工具區別開來。

  • <PackageOutputPath>
    [可選] 將生成 NuGet 包的位置。 NuGet 包是.NET Core CLI 全局工具用於安裝你的工具的包。

XML複製
<Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <OutputType>Exe</OutputType> <TargetFramework>netcoreapp2.1</TargetFramework> <PackAsTool>true</PackAsTool> <ToolCommandName>botsay</ToolCommandName> <PackageOutputPath>./nupkg</PackageOutputPath> </PropertyGroup> </Project> 

雖然 <PackageOutputPath> 不是必選的,請在本示例中使用它。 請務必將其設置爲:<PackageOutputPath>./nupkg</PackageOutputPath>

接下來,建立應用程序的 NuGet 包。

console複製
dotnet pack

botsay.1.0.0.nupkg 文件在由 botsay.csproj 文件的 <PackageOutputPath> XML 值標識的文件夾中建立,在本示例中爲 ./nupkg 文件夾。 這樣,就能夠輕鬆地安裝和測試了。 若是想要公開發佈一個工具,請將其上傳到 https://www.nuget.org。該工具在 NuGet 上可用後,開發人員就可使用 dotnet tool install 命令的 --global 選項在用戶範圍內安裝該工具。

如今你已有一個包,請經過該包安裝工具:

console複製
dotnet tool install --global --add-source ./nupkg botsay

--add-source 參數指示 .NET Core CLI 臨時使用 ./nupkg 文件夾(咱們的 <PackageOutputPath> 文件夾)做爲 NuGet 包的附加源數據源。 有關安裝全局工具的詳細信息,請參閱 .NET Core 全局工具概述

若是安裝成功,會出現一條消息,顯示用於調用工具的命令以及所安裝的版本,相似於如下示例:

複製
You can invoke the tool using the following command: botsay
Tool 'botsay' (version '1.0.0') was successfully installed.

如今應可以鍵入 botsay,並得到來自工具的響應。

 備註

若是安裝已成功,但沒法使用 botsay 命令,可能須要打開新的終端來刷新 PATH。

刪除工具

完成工具的試驗後,可使用如下命令將其刪除:

console複製
dotnet tool uninstall -g botsay
相關文章
相關標籤/搜索