日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

一个简单的dotnet tool

發布時間:2023/12/4 编程问答 56 豆豆
生活随笔 收集整理的這篇文章主要介紹了 一个简单的dotnet tool 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

dotnet tool對應的工具,本質上是一個控制臺應用,在調用這個應用時,會根據傳入的參數,執行應用內部的邏輯。


關于dotnet tool命令使用,參照https://docs.microsoft.com/zh-cn/dotnet/core/tools/dotnet-tool-install


下面來通過一個簡單的demo來看一下tool的開發過程。

首先創建一個.net5的控制臺應用程序,并在項目文件中添加PackAsTool,ToolCommandName,PackageOutputPath三個節點配置:

<Project?Sdk="Microsoft.NET.Sdk"><PropertyGroup><OutputType>Exe</OutputType><TargetFramework>net5.0</TargetFramework><Version>0.0.1</Version><PackAsTool>true</PackAsTool><ToolCommandName>csrebot</ToolCommandName><PackageOutputPath>./nupkg</PackageOutputPath></PropertyGroup> </Project>

控制臺項目正常開發,下面代碼只是做了個數據展示的功能:

using System; using System.Collections.Generic; using System.Reflection;namespace CSRebot {class Program {static void Main(string[] args){if (args.Length == 0){_infoDic["--info"]();return;}else{Run(args);}}static Dictionary<string, Action> _infoDic = new Dictionary<string, Action> {{ "--info", ()=>Console.WriteLine( @$" CSRebot v{Assembly.GetEntryAssembly().GetCustomAttribute<AssemblyInformationalVersionAttribute>().InformationalVersion.ToString()} ---------------------------------------------- Description:為更好的使用C#提供幫助。Usage:csrebot?[options] ---------------------------------------------- ")},{"-h",()=>Console.WriteLine(@$" Version {Assembly.GetEntryAssembly().GetCustomAttribute<AssemblyInformationalVersionAttribute>().InformationalVersion.ToString()}使用情況: csrebot [options] [command] [command-options] [arguments]")},{"-h=today",()=>{switch((int)DateTime.Now.DayOfWeek){case 0:Console.ForegroundColor=ConsoleColor.Red;break;case 6:Console.ForegroundColor=ConsoleColor.Green;break; }Console.WriteLine(@$"今天是{DateTime.Now.ToString("yyyy年MM月dd日")},{(DayOfChineseWeek)(int)DateTime.Now.DayOfWeek}");Console.ResetColor();}}};static void Run(string[] args){if (_infoDic.ContainsKey(args[0])){_infoDic[args[0]]();}}}public enum DayOfChineseWeek {星期日 = 0,星期一 = 1,星期二 = 2,星期三 = 3,星期四 = 4,星期五 = 5,星期六 = 6} }

完成后,選中項目并打包,然后進入項目所有的文件夾執行工具安裝命令

dotnet tool install -g --add-source ./nupkg CSRebot

命令行會返回

可使用以下命令調用工具: csrebot

已成功安裝工具“csrebot”(版本“0.0.1”)。

說明csrebot這個工具安裝成功,現在可以用這個工具執行一下,看看輸出結果了

csrebot -h=today

今天是2021年02月07日,星期日

這里是開發階段,我們沒有把這個工具發布出來,也不建把非成品發布到nuget.org上,避免拉低nuget.org質量

如果工具代碼更新了,要重新卸載這個工具,重裝安裝才可能,這個很好理解,就是刪除原來的應用,重新引用新應用,功能就會得到更新。

dotnet tool uninstall -g CSRebot

總結

以上是生活随笔為你收集整理的一个简单的dotnet tool的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。