前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >教你自制.NET Core Global Tools

教你自制.NET Core Global Tools

作者头像
Edi Wang
发布2019-07-09 10:11:51
6040
发布2019-07-09 10:11:51
举报
文章被收录于专栏:汪宇杰博客汪宇杰博客

命令行是程序员装逼利器,.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 的药丸……

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

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

编辑工程文件

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

<PackAsTool>true</PackAsTool>

<ToolCommandName>azureblobsync</ToolCommandName>

<PackageOutputPath>./nupkg</PackageOutputPath>

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

打包 NuGet

在工程根目录运行

nuget pack

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

安装并测试

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

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

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

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

测试完成后,卸载工具:

dotnet tool uninstall --global edi.azureblobsync

予力众生

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

dotnet pack --configuration Release

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

成就不凡

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

dotnet tool install --global edi.azureblobsync

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-05-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 汪宇杰博客 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
命令行工具
腾讯云命令行工具 TCCLI 是管理腾讯云资源的统一工具。使用腾讯云命令行工具,您可以快速调用腾讯云 API 来管理您的腾讯云资源。此外,您还可以基于腾讯云的命令行工具来做自动化和脚本处理,以更多样的方式进行组合和重用。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档