Update-Package(Visual Studio 中的包管理器控制台)

仅在适用于 Windows 的 Visual Studio 中的 NuGet 包管理器控制台内可用。

将包及其依赖项或项目中的所有包更新到较新版本。

语法

Update-Package [-Id] <string> [-IgnoreDependencies] [-ProjectName <string>] [-Version <string>]
    [-Safe] [-Source <string>] [-IncludePrerelease] [-Reinstall] [-FileConflictAction]
    [-DependencyVersion] [-ToHighestPatch] [-ToHighestMinor] [-WhatIf] [<CommonParameters>]

在 NuGet 2.8 及以上版本中,Update-Package 可用于降级项目中的现有包。 例如,如果已安装 Microsoft.AspNet.MVC 5.1.0-rc1,以下命令则会将它降级到 5.0.0:

Update-Package Microsoft.AspNet.MVC -Version 5.0.0.

参数

参数 说明
Id 待更新包的标识符。 如果省略,则会更新所有包。 -Id 开关自身为可选。
IgnoreDependencies 跳过更新包的依赖项。
ProjectName 包含待更新包的项目的名称,默认为所有项目。
版本 要用于升级的版本,默认为最新版本。 在 NuGet 3.0 及以上版本中,版本值必须为 Lowest、Highest、HighestMinorHighestPatch(等效于 -Safe)之一。
Safe 将升级限制为仅针对与当前已安装包具有相同主要版本和次要版本的那些版本。
Source 要搜索的包源的 URL 或文件夹路径。 本地文件夹路径可为绝对路径,也可为相对于当前文件夹的路径。 如果省略,Update-Package 则会搜索当前选择的包源。
IncludePrerelease 为更新包括预发行包。
重新安装 使用其当前安装的版本来重新安装包。 请参阅重新安装和更新包
FileConflictAction 当系统要求覆盖或忽略项目所引用的现有文件时要执行的操作。 可能的值为 Overwrite、Ignore、None、OverwriteAllIgnoreAll(适用于 3.0 及以上版本)。
DependencyVersion 待使用依赖项包的版本,它可为以下版本之一:
  • Lowest(默认值):最低版本
  • HighestPatch:具有最低主要、最低次要、最高修补程序的版本
  • HighestMinor:具有最低主要、最高次要、最高修补程序的版本
  • 最高(不带参数的 Update-Package 的对应默认值):最高版本
可使用 Nuget.Config 文件中的 dependencyVersion 设置来设置默认值。
ToHighestPatch 等效于 -Safe。
ToHighestMinor 将升级限制为仅针对与当前已安装包具有相同主要版本的那些版本。
WhatIf 显示运行此命令而不实际执行更新时会出现什么情况。

这些参数均不接受管道输入或通配符字符。

通用参数

Update-Package 支持以下常见 PowerShell 参数:Debug、Error Action、ErrorVariable、OutBuffer、OutVariable、PipelineVariable、Verbose、WarningAction 和 WarningVariable。

示例

# Updates all packages in every project of the solution
Update-Package

# Updates every package in the MvcApplication1 project
Update-Package -ProjectName MvcApplication1

# Updates the Elmah package in every project to the latest version
Update-Package Elmah

# Updates the Elmah package to version 1.1.0 in every project showing optional -Id usage
Update-Package -Id Elmah -Version 1.1.0

# Updates the Elmah package within the MvcApplication1 project to the highest "safe" version.
# For example, if Elmah version 1.0.0 of a package is installed, and versions 1.0.1, 1.0.2,
# and 1.1 are available in the feed, the -Safe parameter updates the package to 1.0.2 instead
# of 1.1 as it would otherwise.
Update-Package Elmah -ProjectName MvcApplication1 -Safe

# Reinstall the same version of the original package, but with the latest version of dependencies
# (subject to version constraints). If this command rolls a dependency back to an earlier version,
# use Update-Package <dependency_name> to reinstall that one dependency without affecting the
# dependent package.
Update-Package Elmah –reinstall 

# Reinstall the Elmah package in just MyProject
Update-Package Elmah -ProjectName MyProject -reinstall

# Reinstall the same version of the original package without touching dependencies.
Update-Package Elmah –reinstall -ignoreDependencies