You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何dotnet CLI仅显示一个.NET SDK版本,Visual Studio 2022却显示更多?

为什么dotnet CLI仅显示7.x SDK,但Visual Studio 2022能使用.NET 6构建?

问题现象

  • 使用dotnet --list-sdks命令查看已安装SDK时,仅显示7.0.306版本:
    dotnet CLI仅显示7.x版本
  • 但在Visual Studio 2022中,项目可基于.NET 6正常构建,且目标框架下拉列表能看到更多SDK版本:
    VS2022显示多个SDK版本

核心原因:SDK安装路径分离

Visual Studio 2022和独立下载的.NET SDK默认安装在不同目录,而dotnet CLI只会扫描全局默认路径:

  • 独立下载的.NET SDK(比如官网直接下载的.NET 6/7):默认安装在C:\Program Files\dotnet\sdk(Windows)或/usr/share/dotnet/sdk(Linux/macOS),这是dotnet CLI的默认扫描路径。
  • Visual Studio 2022配套的.NET SDK:安装在VS专属目录,比如C:\Program Files\Microsoft Visual Studio\2022\Community\dotnet\sdk(根据你的VS版本/版本类型调整),这个路径不在dotnet CLI的默认搜索范围内。

这就是为什么普通命令行的dotnet CLI看不到.NET 6,但VS能正常调用它——VS会自动使用自己专属目录下的SDK。

验证方式

  1. 打开Visual Studio 2022的开发者命令提示符,执行dotnet --list-sdks,就能看到包括.NET 6在内的所有VS配套安装的SDK(该命令提示符会自动将VS专属dotnet路径加入环境变量)。
  2. 手动导航到VS的dotnet目录(比如上述的Community版路径),可以直接找到.NET 6的SDK文件。

让dotnet CLI识别VS配套SDK的方法

  • 临时方案:在普通命令行中先执行VS的环境配置脚本,再运行dotnet命令:
    "C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\Tools\VsDevCmd.bat"
    dotnet --list-sdks
    
  • 永久方案:将VS的dotnet根路径(比如C:\Program Files\Microsoft Visual Studio\2022\Community\dotnet)添加到系统环境变量PATH中,并且放在独立安装的C:\Program Files\dotnet路径之前,这样dotnet CLI就会优先扫描VS的SDK。

内容的提问来源于stack exchange,提问作者adolfox

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 16:32:47