首页 > 其他分享 >dotnet tool

dotnet tool

时间:2023-12-13 23:22:29浏览次数:29  
标签:tool nuget json dotnet 工具 tools

dotnet tool 下载Console应用,可以在终端以命令行调用传参执行任务。

全局工具

dotnet tool intsall powershell --global

安装工具并自动将可执行文件的所在目录添加到用户PATH环境变量。全局工具二进制文件默认安装目录

(OS) 路径
Linux/macOS $HOME/.dotnet/tools
Windows %USERPROFILE%\.dotnet\tools (C:\Users\euv\.dotnet\tools)

pwsh -c ls

在任意目录可调用pwsh.exe,因为安装时已添加环境变量。(‪C:\Users\euv.dotnet\tools\pwsh.exe)

dotnet tool list -g

列出所有已安装的全局工具

本地工具

全局工具至少有以下2个缺点:

  1. 全局工具是公有的,如果想使用非全局工具版本,更新工具会影响所有使用全局工具的第三方。

  2. 全局工具会在主机添加环境变量,如果动辄安装各种全局工具临时使用数次而已,会导致大量冗余环境变量。

可以安装本地工具,在特定目录下使用本目录独享的工具实例。

先在目录下构建工具清单文档.config/dotnet-tools.json,安装,卸载,更新工具都会反馈到此文件。在目录以及其子目录下调用工具都会使用清单中列出的版本。

# 先创建清单文件
dotnet new tool-manifest --output "D:\test"
# D:\test\.config\dotnet-tools.json

# 安装
dotnet tool install powershell --local --tool-manifest "D:\test\.config\dotnet-tools.json"

# 更新
dotnet tool update powershell --local --tool-manifest "D:\test\.config\dotnet-tools.json"

# 卸载
dotnet tool uninstall powershell --local --tool-manifest "D:\test\.config\dotnet-tools.json"

# 使用
dotnet pwsh

dotnet-tools.json文档的内容样例

{
  "version": 1,
  "isRoot": true,
  "tools": {
    "powershell": {
      "version": "7.4.0",
      "commands": [
        "pwsh"
      ]
    }
  }
}

使用本地工具,先把终端的当前目录切换到目标目录下,再调用工具。

假设有下面目录结构

  • D:\
    • project\
      • .config\dotnet-tools.json
      • dir1
      • dir2
        • .config\dotnet-tools.json

终端命令行的当前目录是D:\project\dir2,执行dotnet pwsh,先检索D:\project\dir2.config\dotnet-tools.json中是否有powershell,有则调用,无则检查isRoot,true,停止检索报错无此工具,false则在父目录中检索清单文件。

isRoot

理论上,目标目录下的dotnet-tool.json的isRoot是true.

本地工具存储在$HOME/.dotnet/toolResolverCache

dotnet tool restore

本地工具的安装位置

Nuget包可分3类,如下图nuget.org官网搜查筛选选项:

.Net Local Tool本质是一种Console App性质的Nuget包,和Dependency Library的Nuget包一样,被下载到 global NuGet package folder,即$HOME\.nuget\packages(C:\Users\euv\.nuget\packages\)。

.net tool nuget路径样例

C:\Users\euv\.nuget\packages\dotnet-serve\1.10.172\tools\net6.0\any\dotnet-serve.dll

dependency library nuget路径样例

C:\Users\euv\.nuget\packages\newtonsoft.json\13.0.3\lib\net6.0\Newtonsoft.Json.dll

差异点:$HOME\.nuget\packages\package id\version\lib | tools

多个project引用或多个dotnet-tool.json包含特定版本的nuget,但是只会一份。从某个dotnet-tool.json卸载Local Tool或一出nuget reference,并不会导致Nuget从全局缓存卸载,需要手动删除clear nuget。

运行global tool 和 local tool的区别

任务管理器 --> 详细信息

PS D:\OneDrive\Desktop> dotnet dotnet-serve
Starting server, serving .
Listening on any IP:
  http://localhost:53524

Press CTRL+C to exit
进程名称 路径 命令行
dotnet.exe C:\Program Files\dotnet.exe “C:\Program Files\dotnet.exe” ‪C:\Users\euv.nuget\packages\dotnet-serve\1.10.172\tools\net6.0\any\dotnet-serve.dll
PS D:\OneDrive\Desktop> dotnet-serve
Starting server, serving .
Listening on any IP:
  http://localhost:53558

Press CTRL+C to exit
进程名称 路径 命令行
dotnet-serve.exe C:\users\euv\.dotnet\tools\dotnet-serve.exe “C:\users\euv\.dotnet\tools\dotnet-serve.exe”

标签:tool,nuget,json,dotnet,工具,tools
From: https://www.cnblogs.com/LiuwayLi/p/17900171.html

相关文章

  • 虚拟机安装Windows7 X64位教程以及解决VMTOOLS无法安装问题
    相关镜像文件的下载首先我们需要下载一个Windows7的镜像文件这里推荐迅雷下载,速度更快一点ed2k://|file|cn_windows_7_professional_x64_dvd_x15-65791.iso|3341268992|3474800521d169fbf3f5e527cd835156|h=TIYH37L3PBVMNCLT2EX5CSSEGXY6M47W|/虚拟机安装首页->新建虚拟机以上就是......
  • 进行折线图tooltip自定义悬浮框展示,时间是横坐标
         ......
  • Redis内存分析工具-RDBtools安装&使用
    目录是什么安装安装Python(已安装忽略,低版本需要卸载重安)安装GCC(已安装忽略)安装rdbtools和python-lzf安装成功页面基础命令常用示例查找大key与处理导出CVS文件直连Redis服务查询单个key详情生成HTML图表更多用法见Help是什么Rdbtools提供了一组工具,可以帮助用户分析、导入和转换......
  • 【WinForm详细教程五】WinForm中的MenuStrip 、ContextMenuStrip 、ToolStrip、Status
    原文链接:https://blog.csdn.net/QH2107/article/details/1341922511.MenuStripMenuStrip作为一个容器可以包含多个菜单项。MenuStrip的重要属性包括:Name:菜单的名字Dock:菜单的停靠位置Items:菜单项的集合ToolStripMenuItemToolStripMenuItem是MenuStrip中的菜单项,可以有以下......
  • 基于DotNetty实现自动发布 - 实现一键打包发布
    前言上一篇,我只实现了一键检测代码变化,本篇才是真正的实现了一键打包发布效果图客户端打包待发布文件///<summary>///把多个文件添加到压缩包(保留文件夹层级关系)///</summary>publicstaticasyncTask<ZipFileResult>CreateZipAsync(IEnumera......
  • 记 react-redux redux-toolkit
    1、安装npminstall@reduxjs/toolkitreact-redux2、使用2.1创建一个ReduxStoreapp/store.jsimport{configureStore}from'@reduxjs/toolkit'exportconststore=configureStore({reducer:{},})2.2提供ReduxStore来Reactindex.jsimportReactfr......
  • VMwareTools 安装及思考
    1安装步骤A将VMwareTools-10.3.2-9925305下载到桌面,下载完桌面产生一个DVD光盘,写着VMwareToolsB双击光盘进入,进入看到一个压缩包VMwareTools-10.3.2-9925305.tar.gz,解压该压缩包并进入到里面的文件夹查看是否有一个vmware-install.pllC终端进入vmware-install.pl所在路径,......
  • 基于DotNetty实现自动发布 - 自动检测代码变化
    前言很抱歉没有实现上一篇的目标:一键发布,因为工作量超出了预期,本次只实现了Git代码变化检测已完成的功能解决方案的项目发现与配置首次发布需要手动处理自动检测代码变化并解析出待发布的文件简要说明只需要填写解决方案的Git仓储路径即可自动发现项目(通过......
  • H7-TOOL发布2.24固件,增加CMSIS-SVD解析,RTOS Trace链表,I2C/SPI从机,CANopen解析等,脱机烧
    H7-TOOL详细介绍(含操作手册):http://www.armbbs.cn/forum.php?mod=viewthread&tid=89934视频介绍:https://www.bilibili.com/video/BV1494y1j7mj【PC软件】V2.2.41.脱机烧录功能升级  -新增GD32C10x系列  -新增钜泉光电HT502x  -新增英飞凌TLE987x系列  -新......
  • 用最清爽的方式开发dotNet
    用最清爽的方式开发dotNet不管是官方自带模板还是其他开源搞的,总是一来一大堆,如果你也嫌弃这些过于臃肿,不如看看我这个方式前提假设我要做一个简单的api方式想到清爽,那肯定是简单方便,脑袋第一个念头就是.Net6推出的miniapi了官方路子使用ASP.NETCore创建最小API......