.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. java 获取系统当前时间并格式化

      java 获取系统当前时间并格式化 CreateTime--2018年5月9日11:41:00 Author:Marydon 实现方式有三种 updateTime--2018年7月23日09点32 ...

  2. 让WebService支持Get请求

    在C#中,新建一个webservice,默认是post类型的.如果需要支持Get请求,需要对web.config文件进行配置 <system.web> <compilation de ...

  3. sql server Local Service, Local System or Network Service

    local system account local system 选项指定一个不需要密码的本地系统账号去连接同一台电脑的sql server.local system account会限制sql s ...

  4. U盘安装CentOS 7卡住在 mounting configuration file system

    使用UltraISO PE 9.6.0.3000刻录CentOS 7.2到U盘之后,在PC机上安装,一直卡住在此界面 网上各路大神各显神通,提供了各种各样的办法,后来根据一位网友的说法,顺利安装完成 ...

  5. [20170629]带过滤的复制项UI操作导致订阅全部初始化问题

    [问题] 带过滤的复制项UI操作导致订阅全部初始化,但是想不全部初始化,只初始化对应的复制项   [解决] 1.如果修改过滤项,可以直接执行,然后生成快照: -- Adding the article ...

  6. Linux下库打桩机制分析 function Interposition

    [时间:2017-08] [状态:Open] [关键词:linux, libray,打桩,interposition,函数替换,链接器,gcc,malloc,free] 0 引言 本文主要参考< ...

  7. 浅析tornado 中demo的 blog模块

    #!/usr/bin/env python # # Copyright 2009 Facebook # # Licensed under the Apache License, Version 2.0 ...

  8. AI金融知识自学偏量化方向-目录0

    前提: 统计学习(统计分析)和机器学习之间的区别 金融公司采用机器学习技术及招募相关人才 了解不同类型的机器学习 有监督学习 vs 无监督学习 迭代和评估 偏差方差权衡 结合有监督学习和无监督学习(半 ...

  9. ssh-remote-port-forwarding

    1.ssh免密码登录(A登录到B) 1.1.在A上执行并在~/.ssh下生成id_rsa和id_rsa.pub两个文件 ssh-keygen -t rsa -P '' 1.2.拷贝id_rsa.pub ...

  10. .net core实现跨域

    什么是跨域在前面已经讲解过了,这里便不再讲解,直接上代码. 一.后台API接口 用.net core创建一个Web API项目负责给前端界面提供数据. 二.前端界面 建立两个MVC项目,模拟不同的ip ...