dotnet 包更新

本文 适用于: ✔️ .NET 10 SDK 及更高版本

Name

dotnet package update - 更新项目中引用的包。

概要

dotnet package update [<packages>...]
    [--interactive] [--project <path>]
    [--verbosity <level>] [--vulnerable]

dotnet package update -h|--help

Description

dotnet package update 命令更新项目使用的包。 如果启用了 NuGetAudit ,它还可能尝试自动更新更新包,并更新具有已知漏洞的已修复版本。

警告为错误

dotnet package update 执行隐式还原以检查生成的包图是否没有错误。 使用 --vulnerable 还会进行隐式还原来查找 NuGetAudit 警告。 但是,如果项目使用 WarningsAsErrorsTreatWarningsAsErrorsNuGet 的还原警告可能会导致还原失败,从而阻止更新完成。

建议在实现 此功能请求 之前,利用 MSBuild 条件和环境变量作为解决方法。 例如,在项目中设置 <TreatWarningsAsErrors Condition=" '$(CustomCondition)' == ''>true</TreatWarningsAsErrors> ,然后在大多数 Linux 和 Mac shell CustomCondition=true dotnet package update上运行。 在 Windows 命令提示符和 PowerShell 上,需要设置环境变量、运行 dotnet 包更新,然后将环境变量设置为三个单独的命令。

Arguments

  • packages

    要更新的包的可选列表。 如果未提供任何包,该命令将尝试更新项目引用的所有包。 包可以是包名称(可选)后跟 @ 版本号。 例如,dotnet package update Contoso.Utilitiesdotnet package update Contoso.Utilities@3.2.1。 如果未提供版本,它将找到配置包源上可用的最高版本。

选项

  • --interactive

    允许命令停止并等待用户输入或作(例如完成身份验证)。

  • --project <path>

    应在其中更新包的项目。 如果提供了目录,则会在目录中搜索项目和解决方案文件。 默认为当前工作目录。

  • --verbosity

    在输出中显示此数量的详细信息:[n]ormal、、[m]inimal[q]uiet[d]etailed[diag]nostic。 默认值为 normal

  • --vulnerable

    如果还原报告任何包存在已知漏洞,此命令将升级这些包。 使用此选项会将包升级到高于当前引用的版本的最低版本,该版本没有任何已知漏洞。

  • -?|-h|--help

    打印出有关如何使用命令的说明。

例子

  • 将项目中的所有包更新为可用的最高版本

    dotnet package update
    
    Updating outdated packages in S:\src\test\update\ConsoleApp1.
      ConsoleApp1:
        Updated Microsoft.Extensions.Configuration 9.0.0 to 9.0.9.
        Updated Microsoft.Extensions.DependencyInjection 9.0.0 to 9.0.9.
    
    Updated 2 packages in 7 scanned packages.
    
  • 将 Contoso.Utilities 更新为可用的最高版本,将 Fabrikam.WebApi 更新为版本 1.2.3

    dotnet package update Contoso.Utilities Fabrikam.WebApi@1.2.3
    
    Updating outdated packages in S:\src\test\update\ConsoleApp1.
      ConsoleApp1:
        Updated Contoso.Utilities 2.3.1 to 2.4.6.
        Updated Fabrikam.WebApi 1.0.2 to 1.2.3.
    
    Updated 2 packages in 2 scanned packages.
    
  • 使用已知漏洞更新包

    dotnet package update --vulnerable
    
    Updating packages with security advisories in S:\src\test\update\ConsoleApp1
      ConsoleApp1:
        Updating System.Text.Json 8.0.0 to 8.0.5.
    
    Updated 1 packages in 31 scanned packages.