本文適用於: ✔️.NET Core 2.1 SDK 和更新版本
本教學課程會教導您如何建立和封裝 .NET 工具。 .NET CLI 可讓您建立控制台應用程式做為工具,其他人可以安裝並執行。 .NET 工具是從 .NET CLI 安裝的 NuGet 套件。 如需工具的詳細資訊,請參閱 .NET 工具概觀。
您將建立的工具是主控台應用程式,會接受訊息作為輸入,並顯示訊息以及建立機器人影像的文字行。
這是三個教學課程系列中的第一個。 在本教學課程中,您會建立並封裝工具。 在接下來的兩個教學課程中,您會 使用此工具作為全域工具 , 並使用此工具作為本機工具。 建立工具的程式與您將其作為全域工具或本機工具都相同。
先決條件
.NET SDK 6.0.100 或更新版本。
本教學課程使用 .NET SDK 6.0,但從 .NET Core SDK 2.1 開始提供全域工具。 從 .NET Core SDK 3.0 開始,即可使用本機工具。
選擇您喜好的文字編輯器或程式碼編輯器
建立專案
開啟命令提示字元,並建立名為 存放庫的資料夾。
瀏覽至存放 庫 資料夾,然後輸入下列命令:
dotnet new console -n microsoft.botsay -f net6.0此命令會在存放庫資料夾下建立名為 microsoft.botsay 的新資料夾。
備註
在本教學課程中,您會建立以 .NET 6.0 為目標的工具。 若要以不同的架構為目標,請變更
-f|--framework選項。 若要以多個架構為目標,請將TargetFramework專案變更為TargetFrameworks項目檔中的專案,如下列範例所示:<Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <OutputType>Exe</OutputType> <TargetFrameworks>net8.0;net6.0</TargetFrameworks> </PropertyGroup> </Project>流覽至 microsoft.botsay 資料夾。
cd microsoft.botsay
新增程式碼
使用程式代碼編輯器開啟 Program.cs 檔案。
將 Program.cs 中的程式碼替換為以下程式碼:
using System.Reflection; namespace microsoft.botsay; internal class Program { static void Main(string[] args) { Console.WriteLine("Hello World!"); } }您在
using System.Reflection;下一個步驟中新增的程式代碼需要 指示詞。Main以下列程式代碼取代 方法,以處理應用程式的命令行自變數。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您在下一個步驟中建立的方法來列印。新增名為
ShowBot的新方法,這個方法會採用字串參數。 方法會使用文字行列印出機器人的訊息和影像。static void ShowBot(string message) { string bot = $"\n {message}"; bot += @" __________________ \ \ .... ....' .... .......... .............'..'.. ................'..'..... .......'..........'..'..'.... ........'..........'..'..'..... .'....'..'..........'..'.......'. .'..................'... ...... . ......'......... ..... . _ __ ...... .. # ## ...... .... . ....... ...... ....... ............ ................ ...................... ........................'................ ......................'..'...... ....... .........................'..'..... ....... ........ ..'.............'..'.... .......... ..'..'... ...............'....... .......... ...'...... ...... .......... ...... ....... ........... ....... ........ ...... ....... '...'.'. '.'.'.' .... ....... .....'.. ..'..... .. .......... ..'........ ............ .............. ............. '.............. ...........'.. .'.'............ ............... .'.'............. .............'.. ..'..'........... ............... .'.............. ......... .............. ..... "; Console.WriteLine(bot); }儲存您的變更。
測試應用程式
執行專案並查看輸出。 請在命令行嘗試這些變化,以查看不同的結果:
dotnet run
dotnet run -- "Hello from the bot"
dotnet run -- Hello from the bot
分隔符之後 -- 的所有自變數都會傳遞至您的應用程式。
封裝工具
您必須先修改項目檔,才能將應用程式封裝並散發為工具。
開啟 microsoft.botsay.csproj 檔案,並將三個新的 XML 節點新增至節點的
<PropertyGroup>結尾:<PackAsTool>true</PackAsTool> <ToolCommandName>botsay</ToolCommandName> <PackageOutputPath>./nupkg</PackageOutputPath><ToolCommandName>是選擇性專案,指定在安裝工具之後會叫用此工具的命令。 如果未提供這個專案,工具的命令名稱就是元件名稱,通常是沒有 .csproj 擴展名的項目檔名稱。備註
為
<ToolCommandName>選擇唯一值。 請避免使用擴展名 (例如.exe或.cmd),因為工具會安裝為應用程式主機,而且命令不應該包含擴展名。 這有助於防止與現有命令發生衝突,並確保安裝體驗順暢。<PackageOutputPath>是選擇性專案,可決定要產生 NuGet 套件的位置。 NuGet 套件是 .NET CLI 用來安裝工具的內容。專案檔現在看起來像下列範例:
<Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <OutputType>Exe</OutputType> <TargetFramework>net6.0</TargetFramework> <PackAsTool>true</PackAsTool> <ToolCommandName>botsay</ToolCommandName> <PackageOutputPath>./nupkg</PackageOutputPath> </PropertyGroup> </Project>執行 dotnet pack 命令來建立 NuGet 套件:
dotnet packmicrosoft.botsay.1.0.0.nupkg 檔案會建立在 microsoft.botsay.csproj 檔案的值所
<PackageOutputPath>識別的資料夾中,在此範例中為 ./nupkg 資料夾。當您要公開發行工具時,您可以將它上傳至
https://www.nuget.org。 在 NuGet 上使用此工具之後,開發人員可以使用 dotnet tool install 命令來安裝此工具 。 在本教學課程中,您會直接從本機 nupkg 資料夾安裝套件,因此不需要將套件上傳至 NuGet。
Troubleshoot
如果您在遵循教學課程時收到錯誤訊息,請參閱 針對 .NET 工具使用問題進行疑難解答。
後續步驟
在本教學課程中,您已建立控制台應用程式,並將其封裝為工具。 若要瞭解如何使用此工具作為全域工具,請繼續進行下一個教學課程。
如果您想要的話,您可以略過全域工具教學課程,並直接移至本機工具教學課程。