.NET Core 3.0 本地工具

.NET Core从最先期的版本就开始支持全局工具了。若是仅仅须要在某个项目中或某个文件夹中使用特定的工具,那么.NET Core 3.0就容许您这样作。 shell

使用.NET Core 3.0,您能够在特定的文件夹下安装“本地”工具,它的做用范围仅限于该文件夹及其子文件夹。 json

 

.NET Core 3.0以前 

若是我想在一个项目中使用Cake Build,那么在.NET Core 3.0以前,我能够这样作,把Cake.Tool安装为全局的工具: 缓存

dotnet tool install —global Cake. Tool

 

可是若是多个项目须要使用不一样版本的 Cake.Tool,那么在.NET Core 3.0以前,咱们只能这么作: 工具

dotnet tool install —tool-path . tools Cake. Tool

 

而后这样用: ui

./. tools/dotnet-cake 
—help

可是这样也有几个缺点: spa

  • 这个命令比较难记,略长。 rest

  • 没有这个项目中所安装工具的清单。 orm

  • 若是同一个版本的工具安装在n个地方,那么就有n个拷贝。 xml

  • 因为工具文件的后缀名可能不同,因此启动工具的命令多是和平台有关的。 开发

 

 

.NET Core 3.0 本地工具

打开Visual StudioPackage Manager Console(Powershell或者其它终端也能够),在安装本地工具以前,首先要建立一个本地工具清单文件,使用命令dotnet new tool-manifest 

dotnet new tool-manifest 
Getting ready.. 
The template "Dotnet local tool manifest file" 
was created successfully.

 

而后进入项目所在目录,在.config文件夹下面能够看到名为dotnet-tools.json这个文件: 

{J dotnet-tools.json x 
D: > Projects > dotnet > ConsoleApp1 > config > datnet-toalsjson 
1 
2 
3 
4 
5 
"version" 
"isRoot " : 
"tools" 
true,

 

而后我在这个项目里面安装Cake.Tool这个工具,使用dotnet tool install xxx便可: 

dotnet tool install Cake . Tool 
You can invoke the tool fr 
Tool ' cake . tool' (version ' 
1 rectory using the following commands: dotnet 
was successfully installed. Entry is added to

 

而后再看dotnet-tools.json文件: 

ojects > dotnet > ConsoleApp1 > config > {b datnet-toalsjson > 
"version" 
"isRoot" : 
true, 
"tools": 
'I cake. tool " : 
" version " 
"0.35.0" 
" commands" : 
" dotnet-cake"

能够看到cake.tool显示在里面了。 

 

运行本地工具 

若是Cake.Tool是全局安装的话,那么我直接执行cake --help就应该有结果: 

可是,很显然这样作不行。 

 

因为Cake.Tool是本地安装的,运行本地工具须要在前边加上dotnet: 

这样就能够了。 

 

其实上面那种写法是下面写法的简写: 

 

也能够这样写: 

 

此外,在工具安装目录的子目录里也可使用这个工具。 

 

共享本地工具 

咱们能够把.config目录提交到源码管理,这样的话,其它开发者也可使用安装的本地工具了。这些工具实际是安装在全局nuget包缓存里,若是第一次运行的时候没有安装工具的包,那么你须要先执行 dotnet tool restore 进行还原,而后才可使用这些本地工具。

相关文章
相关标签/搜索