首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >.NET 10 中的 dnx

.NET 10 中的 dnx

作者头像
郑子铭
发布2025-08-15 09:37:31
发布2025-08-15 09:37:31
8600
代码可运行
举报
运行总次数:0
代码可运行

.NET 10 中的 dnx

Intro

在 node 里有一个 npx 命令可以直接执行 npm package,dotnet 也在 .NET 10 中引入了一个 dnx 的命令,我们可以通过 dnx 来执行一个 dotnet tool 而无需将其安装为 global tool 或者 local tool,这样可以执行 dotnet tool 同时不在 global tool 或者 local tool 中引入额外的工具

Sample

我们可以通过 dnx --help 来查看使用说明,从使用帮助可以看出 dnx 等同于 dotnet dnx,而它又是 dotnet tool exec/dotnet tool execute 的一个别名

`dxn --help`

`dotnet tool execute`

例如我们执行 dotnet-execute 输出一个 guid,可以执行 dnx dotnet-execute "Guid.NewGuid()"

`dnx dotnet-execute "Guid.NewGuid()"`

第一次执行会看 nuget package 缓存中是否已经下载,需要下载的时候会弹出提示,不想看到提示的话可以执行的时候指定 -y

默认会使用 nuget.org 上最新的稳定版本,也可以指定具体的版本或者使用 --prerelease

目前的版本里有点问题,即使之前已经下载安装了还是会重新下载,后面版本会修复

How it works

在 .NET 10 最新版本的 SDK 的根目录下,可以看到有一个可执行的 dnx 文件,在 Windows 下是 dnx.cmd

`dotnet-sdk windows folder`

`dotnet-sdk linux folder`

dnx.cmd 内容如下:

代码语言:javascript
代码运行次数:0
运行
复制
@echo off
"%~dp0dotnet.exe" dnx %*

`dnx.cmd`

dnx linux 内容如下:

代码语言:javascript
代码运行次数:0
运行
复制
#!/bin/sh
"$(dirname "$0")/dotnet" dnx "$@"

大概就是从执行当前同目录的命令 dotnet dnx,可以参考 PR:https://github.com/dotnet/sdk/pull/49461/files

dotnet dnx 默认是隐藏的一个命令,所以在 dotnet --help 的时候是没有 dnx 相关的介绍的,而 dotnet dnx 又相当于是 dotnet tool execute 的一个别名,两者的实现是一致的

More

dnx 的出现一方面是为了简化 dotnet tool execuete 的使用,同时方便基于标准输入输出的 MCP tool,这样比较方便地运行 MCP Server

同时在 CI 时使用这一命令可以避免影响整体环境

References

  • • https://github.com/dotnet/core/blob/main/release-notes/10.0/preview/preview6/sdk.md#one-shot-tool-execution
  • • https://learn.microsoft.com/en-us/dotnet/core/whats-new/dotnet-10/sdk?WT.mc_id=DT-MVP-5004222#the-new-dnx-tool-execution-script
  • • https://github.com/dotnet/designs/blob/main/accepted/2025/direct-tool-execution.md
  • • https://github.com/dotnet/sdk/pull/49425
  • • https://github.com/dotnet/sdk/pull/49461
  • • https://github.com/dotnet/sdk/pull/49329
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-08-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 DotNet NB 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • .NET 10 中的 dnx
    • Intro
    • Sample
    • How it works
    • More
    • References
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档