C# 如何锁定 .NET SDK 版本

在 .NET 开发过程中,随着 SDK 的不断更新,有时会因为 SDK 版本不一致导致构建失败或功能异常。为了解决这些问题,
global.json
 文件提供了一种简单而高效的方式来指定项目运行时的 .NET SDK 版本。

通过添加和配置 
global.json
 文件锁定 .NET SDK 版本,而非运行时版本,作用域为其所在目录及子目录,可在不同项目目录放置不同的 
global.json
 实现版本隔离。

什么是 
global.json


global.json
 是一个 JSON 文件,用于指定 .NET CLI 使用的 SDK 版本。它并不控制项目所面向的运行时版本,而是直接影响开发和构建时的 CLI 版本选择。

为什么需要 global.json?

版本固定:在 CI/CD 环境中,确保开发与构建环境使用相同版本的 .NET SDK,避免因版本变化导致的问题。
前滚策略:为 SDK 版本选择灵活的策略,例如允许补丁或次版本升级。
排除预发布版本:避免意外使用不稳定的预发布版本。
团队协作一致性:在多人开发中,确保大家的开发环境一致。
 

方法一:手动创建 
global.json
 文件

这是最直接的方式,适用于所有操作系统。

定位到项目根目录打开文件资源管理器,导航到你的项目根目录。

创建新文件

在空白处右键 → 新建 → 文本文档。将文件名改为 
global.json
(注意:必须去掉 
.txt
 后缀
,确保文件名为 
global.json
 而非 
global.json.txt
)。

编辑配置内容用记事本或代码编辑器(如 VS Code)打开 
global.json
,写入以下基础配置并根据需要修改:



{
  "sdk": {
    "version": "6.0.400",       // 你需要指定的SDK版本
    "rollForward": "latestMinor" // 版本兼容策略
  }
}

如果你不知道本地已安装的 SDK 版本,可以先用 
dotnet --list-sdks
 命令查看,然后填入你想使用的版本号。

保存文件保存后,确保文件编码为 UTF-8,且位于项目根目录。

方法二:使用 .NET CLI 自动生成(推荐)

通过命令行工具可以快速生成并配置 
global.json
,避免手动拼写错误。

打开终端 / 命令行按下 
Win + R
 输入 
cmd
 打开命令提示符。

导航到项目目录使用 
cd
 命令切换到你的项目根目录:


cd C:UsersdarkbDesktopGlobal

生成 
global.json
 文件
运行以下命令生成文件(可指定 SDK 版本):



# 生成默认配置(使用本地最新SDK版本)
dotnet new globaljson
 
# 或指定具体SDK版本(例如指定6.0.400)
dotnet new globaljson --sdk-version 6.0.400

(可选)修改配置生成后,你可以用编辑器打开文件,根据需要调整 
rollForward
 等参数。

验证配置是否生效

配置完成后,可通过以下命令验证是否生效:



# 查看当前目录使用的SDK版本
dotnet --version

如果输出的版本与你在 
global.json
 中指定的版本一致(或按 
rollForward
 策略匹配的版本),说明配置生效。

常用配置示例

根据不同需求,你可以调整 
global.json
 的配置:

锁定精确版本(不允许向前兼容):



{
  "sdk": {
    "version": "6.0.400",
    "rollForward": "disable"
  }
}

允许使用最新主版本(例如指定 6.x,自动用 7.x):



{
  "sdk": {
    "version": "6.0.0",
    "rollForward": "latestMajor"
  }
}

总结

添加 
global.json
 有两种方式:手动创建文件并编写配置,或用 
dotnet new globaljson
 命令生成
;核心配置是 
sdk.version
(指定 SDK 版本)和 
sdk.rollForward
(版本兼容策略);通过 
dotnet --version
 可验证配置是否生效。

这样你就能根据项目需求灵活配置 
.NET SDK
 版本了!

© 版权声明

相关文章

暂无评论

none
暂无评论...