.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-servedotnet-searchdotnet-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的官方网站。这样你的劳动成果便可以最大化的发挥价值了。

参考文档:

global-tools

.NET Core开发日志——Global Tools的更多相关文章

  1. C#实现多级子目录Zip压缩解压实例 NET4.6下的UTC时间转换 [译]ASP.NET Core Web API 中使用Oracle数据库和Dapper看这篇就够了 asp.Net Core免费开源分布式异常日志收集框架Exceptionless安装配置以及简单使用图文教程 asp.net core异步进行新增操作并且需要判断某些字段是否重复的三种解决方案 .NET Core开发日志

    C#实现多级子目录Zip压缩解压实例 参考 https://blog.csdn.net/lki_suidongdong/article/details/20942977 重点: 实现多级子目录的压缩, ...

  2. NET Core 2.1 Global Tools

    微软工程师Nate McMaster的博文.NET Core 2.1 Global Tools https://natemcmaster.com/blog/2018/05/12/dotnet-glob ...

  3. .NET Core开发日志——Entity Framework与PostgreSQL

    Entity Framework在.NET Core中被命名为Entity Framework Core.虽然一般会用于对SQL Server数据库进行数据操作,但其实它还支持其它数据库,这里就以Po ...

  4. .NET Core开发日志——RequestDelegate

    本文主要是对.NET Core开发日志--Middleware的补遗,但是会从看起来平平无奇的RequestDelegate开始叙述,所以以其作为标题,也是合情合理. RequestDelegate是 ...

  5. .NET Core开发日志——从搭建开发环境开始

    .NET Core自2016年推出1.0版本开始,到目前已是2.1版本,在其roadmap计划里明年更会推出3.0版本,发展不可不谓之迅捷.不少公司在经过一个谨慎的观望期后,也逐步开始将系统升级至最新 ...

  6. .NET Core开发日志——Peachpie

    .NET Core的生态圈随着开源社区的力量不断注入至其中,正在变得越来越强盛,并且不时得就出现些有意思的项目,比如Peachpie,它使得PHP的代码迁移到.NET Core项目变得可能. 从创建简 ...

  7. .NET Core开发日志——结构化日志

    在.NET生态圈中,最早被广泛使用的日志库可能是派生自Java世界里的Apache log4net.而其后来者,莫过于NLog.Nlog与log4net相比,有一项较显著的优势,它支持结构化日志. 结 ...

  8. .NET Core开发日志——Edge.js

    最近在项目中遇到这样的需求:要将旧有系统的一部分业务逻辑集成到新的自动化流程工具中.这套正在开发的自动化工具使用的是C#语言,而旧有系统的业务逻辑则是使用AngularJS在前端构建而成.所以最初的考 ...

  9. .NET Core开发日志——Linux版本的SQL Server

    SQL Server 2017版本已经可以在Linux系统上安装,但我在尝试.NET Core跨平台开发的时候使用的是Mac系统,所以这里记录了在Mac上安装SQL Server的过程. 最新的SQL ...

随机推荐

  1. Android——进程通信/ AIDL/Message相关知识总结贴

    Android多进程通信 http://www.apkbus.com/android-83462-1-1.html Android 跨进程通信(一) http://www.apkbus.com/and ...

  2. C#中Post请求的两种方式发送参数链和Body的

    POST请求 有两种方式 一种是组装key=value这种参数对的方式 一种是直接把一个字符串发送过去 作为body的方式 我们在postman中可以看到 sfdsafd sdfsdfds publi ...

  3. 【Vegas原创】SQL Server 只安装客户端的方法

    只安装管理工具

  4. s:iterator 标签使用错误记录

    <s:iterator value="newMarriageMoveList" id='tpNewMarriage' status="number"> ...

  5. Android解决NDK not configured问题

    问题描述: // Error:Execution failed for task ':SoftkeyApp:compileDebugNdk'. // > NDK not configured. ...

  6. MySql实现sequence功能的代码

    使用函数创建自增序列管理表(批量使用自增表,设置初始值,自增幅度) 第一步:创建Sequence管理表 sequence DROP TABLE IF EXISTS sequence; CREATE T ...

  7. 【spark 深入学习 06】RDD编程之旅基础篇02-Spaek shell

    --------------------- 本节内容: · Spark转换 RDD操作实例 · Spark行动 RDD操作实例 · 参考资料 --------------------- 关于学习编程方 ...

  8. Android中获取应用程序(包)的信息-----PackageManager的使用

    本节内容是如何获取Android系统中应用程序的信息,主要包括packagename.label.icon.占用大小等.具体分为两个 部分,计划如下: 第一部分: 获取应用程序的packagename ...

  9. QT-Qt获取当前时间并格式化输出及将积秒转换成时间

    https://blog.csdn.net/u012199908/article/details/50731543 格式化输出当前时刻qDebug()<<"currentTime ...

  10. Oracle数据库学习(一)安装和简单使用

    新公司的新项目,需要用到Oracle数据库,所以现在便来解除此数据库,不得不说,这个数据库还这是麻烦. 安装倒是简单,就是中间会遇到各种问题. 安装步骤参考:https://blog.csdn.net ...