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

.NET 7.0如何通过命令行一次性更新所有NuGet依赖?

.NET 7.0 批量更新所有NuGet依赖的命令行方案

方案一:使用.NET SDK自带命令+PowerShell脚本(无需额外安装工具)

.NET 7 SDK自带的dotnet list package命令可识别所有可更新的NuGet依赖,配合PowerShell脚本能实现批量更新:

单项目场景

将以下代码保存为Update-NuGetPackages.ps1,放到项目根目录执行:

# 获取所有可更新的NuGet包(排除框架引用)
$packages = dotnet list package --outdated --format json | ConvertFrom-Json | Select-Object -ExpandProperty packages | Select-Object -ExpandProperty package

# 遍历批量更新到兼容的最新版本(若要更新到绝对最新版,将$package.compatibleVersion替换为$package.latestVersion)
foreach ($package in $packages) {
    Write-Host "Updating $($package.id) from $($package.currentVersion) to $($package.compatibleVersion)"
    dotnet add package $package.id --version $package.compatibleVersion
}

多项目解决方案场景

如果是多项目解决方案,使用以下脚本批量更新所有项目的依赖:

# 替换为你的解决方案文件路径
$slnPath = "./YourSolution.sln"

# 获取解决方案下的所有项目
$projects = dotnet sln $slnPath list | Select-Object -Skip 2

foreach ($proj in $projects) {
    Write-Host "`n=== Updating packages for project: $proj ==="
    $packages = dotnet list $proj package --outdated --format json | ConvertFrom-Json | Select-Object -ExpandProperty packages | Select-Object -ExpandProperty package
    
    foreach ($package in $packages) {
        Write-Host "Updating $($package.id) from $($package.currentVersion) to $($package.compatibleVersion)"
        dotnet add $proj package $package.id --version $package.compatibleVersion
    }
}

方案二:使用维护中的第三方命令行工具

若偏好工具而非脚本,可尝试活跃维护的NuGetPackageUpdater:

  1. 安装工具:dotnet tool install --global NuGetPackageUpdater
  2. 在项目/解决方案根目录执行批量更新:npu update

该工具支持批量更新所有依赖,还可通过参数过滤目标包、指定版本范围等。

注意事项

  • 执行更新前务必提交代码到版本控制系统,以便出现兼容性问题时快速回滚。
  • 部分依赖更新后可能引发编译错误或运行时问题,需要后续针对性排查修复。
  • 若需保留特定依赖不更新,可在脚本中添加过滤逻辑(比如跳过指定包ID)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 07:15:31