教你自制.NET Core Global Tools

点击上方蓝字关注“汪宇杰博客”

640?wx_fmt=png

命令行是程序员装逼利器,.NET Core也可以写命令行程序,但是如何分发给其他程序员使用,一直是个问题。现在,有了.NET Core Global Tools,可以很方便的解决分发问题,我们来看看吧。

啥是 Global Tools

.NET Core Global Tools 是一种特殊的nuget包,内容就是一个控制台应用程序。在异教徒的世界里,程序员可以通过pip3、npm来安装命令行工具使用,而微软的世界里有nuget,它是分发命令行工具的绝佳平台。

为啥不用 UWP?

可能有小伙伴问,Windows 10 有应用商店,UWP也有命令行程序,为啥不通过 UWP 来编写和分发命令行工具呢?

首先,UWP 只能在 Windows 平台运行,其次,UWP目前不支持所有 .NET Core 的 API,最后,平台的限制、商店和系统的 Bug、Runtime 和 SDK 的药丸……

关于这个,可能只有一张图能解释:

640?wx_fmt=png

黑完 UWP,我们就有充分的理由只投资.NET Core了!

640?wx_fmt=gif

编辑工程文件

在工程文件 (.csproj) 的 PropertyGroup 里加入

<PackAsTool>true</PackAsTool>

<ToolCommandName>azureblobsync</ToolCommandName>

<PackageOutputPath>./nupkg</PackageOutputPath>

其中,azureblobsync 表示最终用户要启动你的程序得在cmd里输入的命令,./nupkg 是最终生成nuget包的文件夹路径。


打包 NuGet

在工程根目录运行

nuget pack

640?wx_fmt=png

这会在 ./nupkg 目录下生成一个 Debug 编译的nuget包,用于本地开发调试。我的工具名为 Edi.AzureBlobSync,命令设为 azureblobsync

安装并测试

还是在工程根目录运行命令

dotnet tool install --global --add-source ./nupkg Edi.AzureBlobSync

640?wx_fmt=png

这会在机器上安装一个来源于本地 nupkg 文件夹底下的 Debug 版本的.NET Core Global Tool。然后自己试一下会不会爆:

640?wx_fmt=png

我的工具运行很成功,没有爆,毕竟是信仰护体。

测试完成后,卸载工具:

dotnet tool uninstall --global edi.azureblobsync

640?wx_fmt=gif

予力众生

使用 Release 配置重新生成nuget包:

dotnet pack --configuration Release

然后,上传到nuget.org,并等待审核以及索引完成。

640?wx_fmt=png 640?wx_fmt=gif

成就不凡

现在,全世界的.NET程序员都可以通过安装并使用你的工具啦!

dotnet tool install --global edi.azureblobsync

640?wx_fmt=gif
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值