博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
一个简单的dotnet tool
阅读量:4035 次
发布时间:2019-05-24

本文共 2641 字,大约阅读时间需要 8 分钟。

dotnet tool对应的工具,本质上是一个控制台应用,在调用这个应用时,会根据传入的参数,执行应用内部的逻辑。


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


下面来通过一个简单的demo来看一下tool的开发过程。

首先创建一个.net5的控制台应用程序,并在项目文件中添加PackAsTool,ToolCommandName,PackageOutputPath三个节点配置:

Exe
net5.0
0.0.1
true
csrebot
./nupkg
  

控制台项目正常开发,下面代码只是做了个数据展示的功能:

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
_infoDic = new Dictionary
{ { "--info", ()=>Console.WriteLine( @$"CSRebot v{Assembly.GetEntryAssembly().GetCustomAttribute
().InformationalVersion.ToString()}----------------------------------------------Description: 为更好的使用C#提供帮助。Usage:    csrebot [options]----------------------------------------------") }, {"-h",()=>Console.WriteLine(@$"Version {Assembly.GetEntryAssembly().GetCustomAttribute
().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

转载地址:http://dvudi.baihongyu.com/

你可能感兴趣的文章
[Leetcode BY python ]190. Reverse Bits
查看>>
Android下调用收发短信邮件等(转载)
查看>>
Android中电池信息(Battery information)的取得
查看>>
SVN客户端命令详解
查看>>
Android/Linux 内存监视
查看>>
Linux系统信息查看
查看>>
用find命令查找最近修改过的文件
查看>>
Android2.1消息应用(Messaging)源码学习笔记
查看>>
Phone双模修改涉及文件列表
查看>>
android UI小知识点
查看>>
Android之TelephonyManager类的方法详解
查看>>
android raw读取超过1M文件的方法
查看>>
ubuntu下SVN服务器安装配置
查看>>
MPMoviePlayerViewController和MPMoviePlayerController的使用
查看>>
CocoaPods实践之制作篇
查看>>
[Mac]Mac 操作系统 常见技巧
查看>>
苹果Swift编程语言入门教程【中文版】
查看>>
捕鱼忍者(ninja fishing)之游戏指南+游戏攻略+游戏体验
查看>>
iphone开发基础之objective-c学习
查看>>
iphone开发之SDK研究(待续)
查看>>