Install-Package

安装一个或多个软件包。

语法

Install-Package
       [-Name] <String[]>
       [-RequiredVersion <String>]
       [-MinimumVersion <String>]
       [-MaximumVersion <String>]
       [-Source <String[]>]
       [-Credential <PSCredential>]
       [-Proxy <Uri>]
       [-ProxyCredential <PSCredential>]
       [-AllVersions]
       [-Force]
       [-ForceBootstrap]
       [-WhatIf]
       [-Confirm]
       [-ProviderName <String[]>]
       [<CommonParameters>]
Install-Package
       [-InputObject] <SoftwareIdentity[]>
       [-Credential <PSCredential>]
       [-Proxy <Uri>]
       [-ProxyCredential <PSCredential>]
       [-AllVersions]
       [-Force]
       [-ForceBootstrap]
       [-WhatIf]
       [-Confirm]
       [<CommonParameters>]
Install-Package
       [-Credential <PSCredential>]
       [-Proxy <Uri>]
       [-ProxyCredential <PSCredential>]
       [-AllVersions]
       [-Force]
       [-ForceBootstrap]
       [-WhatIf]
       [-Confirm]
       [-ConfigFile <String>]
       [-SkipValidate]
       [-Headers <String[]>]
       [-FilterOnTag <String[]>]
       [-Contains <String>]
       [-AllowPrereleaseVersions]
       [-Destination <String>]
       [-ExcludeVersion]
       [-Scope <String>]
       [-SkipDependencies]
       [<CommonParameters>]
Install-Package
       [-Credential <PSCredential>]
       [-Proxy <Uri>]
       [-ProxyCredential <PSCredential>]
       [-AllVersions]
       [-Force]
       [-ForceBootstrap]
       [-WhatIf]
       [-Confirm]
       [-ConfigFile <String>]
       [-SkipValidate]
       [-Headers <String[]>]
       [-FilterOnTag <String[]>]
       [-Contains <String>]
       [-AllowPrereleaseVersions]
       [-Destination <String>]
       [-ExcludeVersion]
       [-Scope <String>]
       [-SkipDependencies]
       [<CommonParameters>]
Install-Package
       [-Credential <PSCredential>]
       [-Proxy <Uri>]
       [-ProxyCredential <PSCredential>]
       [-AllVersions]
       [-Force]
       [-ForceBootstrap]
       [-WhatIf]
       [-Confirm]
       [-AllowPrereleaseVersions]
       [-Scope <String>]
       [-PackageManagementProvider <String>]
       [-PublishLocation <String>]
       [-ScriptSourceLocation <String>]
       [-ScriptPublishLocation <String>]
       [-Type <String>]
       [-Filter <String>]
       [-Tag <String[]>]
       [-Includes <String[]>]
       [-DscResource <String[]>]
       [-RoleCapability <String[]>]
       [-Command <String[]>]
       [-AcceptLicense]
       [-AllowClobber]
       [-SkipPublisherCheck]
       [-InstallUpdate]
       [-NoPathUpdate]
       [<CommonParameters>]
Install-Package
       [-Credential <PSCredential>]
       [-Proxy <Uri>]
       [-ProxyCredential <PSCredential>]
       [-AllVersions]
       [-Force]
       [-ForceBootstrap]
       [-WhatIf]
       [-Confirm]
       [-AllowPrereleaseVersions]
       [-Scope <String>]
       [-PackageManagementProvider <String>]
       [-PublishLocation <String>]
       [-ScriptSourceLocation <String>]
       [-ScriptPublishLocation <String>]
       [-Type <String>]
       [-Filter <String>]
       [-Tag <String[]>]
       [-Includes <String[]>]
       [-DscResource <String[]>]
       [-RoleCapability <String[]>]
       [-Command <String[]>]
       [-AcceptLicense]
       [-AllowClobber]
       [-SkipPublisherCheck]
       [-InstallUpdate]
       [-NoPathUpdate]
       [<CommonParameters>]

说明

Install-Package cmdlet 在本地计算机上安装一个或多个软件包。 如果你有多个软件源,请使用 Get-PackageProviderGet-PackageSource 显示有关提供商的详细信息。

重要

PackageManagement 模块中包含的命令不同于 Visual Studio 的包管理器控制台中 NuGet 模块提供的命令。 每个模块都有在其他模块中不可用的命令。 具有相同名称的命令在其特定参数中有所不同。 有关详细信息,请参阅 Visual Studio 的包管理器控制台的 PowerShell 参考 文档。

示例

示例 1:按包名称安装包

Install-Package cmdlet 安装软件包及其依赖项。

PS> Install-Package -Name NuGet.Core -Source MyNuGet -Credential Contoso\TestUser

Install-Package使用参数指定包名称和Credential 参数使用具有安装包权限的域用户帐户。 该命令会提示输入用户帐户密码。

示例 2:使用 Find-Package 安装包

在此示例中,返回 Find-Package 的对象由管道向下发送,并由该 Install-Package对象安装。

PS> Find-Package -Name NuGet.Core -Source MyNuGet | Install-Package

Find-Package 使用 NameSource 参数查找包。 该对象会向下发送管道,并将 Install-Package 包安装在本地计算机上。

示例 3:通过指定一系列版本来安装包

Install-Package 使用 MinimumVersionMaximumVersion 参数指定一系列软件版本。

PS> Install-Package -Name NuGet.Core -Source MyNuGet -MinimumVersion 2.8.0 -MaximumVersion 2.9.0

Install-Package 使用 NameSource 参数查找包。 MinimumVersionMaximumVersion 参数指定一系列软件版本。 安装范围中的最高版本。

参数

-AcceptLicense

AcceptLicense 在安装过程中自动接受许可协议。

类型:SwitchParameter
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-AllowClobber

重写有关与现有命令冲突的警告消息。 覆盖与所安装的命令同名的现有命令。

类型:SwitchParameter
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-AllowPrereleaseVersions

允许安装标记为预发行的包。

类型:SwitchParameter
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-AllVersions

Install-Package 安装包的所有可用版本。 默认情况下,仅安装最新版本。

类型:SwitchParameter
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-Command

指定搜索的 Install-Package 一个或多个命令。

类型:String[]
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-ConfigFile

指定包含配置文件的路径。

类型:String
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-Confirm

在运行 cmdlet 之前,提示你进行确认。

类型:SwitchParameter
别名:cf
Position:Named
默认值:False
必需:False
接受管道输入:False
接受通配符:False

-Contains

Install-Package 如果 Contains 参数指定与任何对象的属性值匹配的值,则获取对象。

类型:String
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-Credential

指定有权访问计算机并运行命令的用户帐户。 键入用户名,例如 User01Domain01\User01 或输入 cmdlet 生成的 Get-CredentialPSCredential 对象。 如果键入用户名,系统会提示输入密码。

如果未指定 Credential 参数, Install-Package 请使用当前用户。

类型:PSCredential
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-Destination

指定输入对象的路径。

类型:String
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-DscResource

指定搜索的 Install-Package一个或多个 Desired State Configuration (DSC) 资源。 使用 Find-DscResource cmdlet 查找 DSC 资源。

类型:String[]
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-ExcludeVersion

切换到排除文件夹路径中的版本号。

类型:SwitchParameter
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-Filter

指定要在 NameDescription 属性中搜索的术语。

类型:String
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-FilterOnTag

指定筛选结果并排除不包含指定标记的结果的标记。

类型:String[]
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-Force

强制命令运行而不要求用户确认。 替代阻止 Install-Package 成功的限制,但安全性除外。

类型:SwitchParameter
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-ForceBootstrap

强制 PackageManagement 为指定的包自动安装包提供程序。

类型:SwitchParameter
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-Headers

指定包标头。

类型:String[]
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-Includes

指定是否 Install-Package 应查找所有包类型。 此参数的可接受值如下所示:

  • Cmdlet
  • DscResource
  • 功能
  • RoleCapability
  • 工作流程
类型:String[]
接受的值:Cmdlet, DscResource, Function, RoleCapability, Workflow
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-InputObject

接受管道输入。 使用包的 SoftwareIdentity 类型指定包。 Find-Package 输出 SoftwareIdentity 对象。

类型:Microsoft.PackageManagement.Packaging.SoftwareIdentity[]
Position:0
默认值:None
必需:True
接受管道输入:True
接受通配符:False

-InstallUpdate

指示 Install-Package 安装更新。

类型:SwitchParameter
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-MaximumVersion

指定要安装的最大允许包版本。 如果未指定此参数, Install-Package 请安装包的最新版本。

类型:String
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-MinimumVersion

指定要安装的最小允许的包版本。 如果未添加此参数, Install-Package 请安装包的最新版本,该版本满足 MaximumVersion 参数指定的任何版本。

类型:String
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-Name

指定一个或多个包名称。 多个包名称必须用逗号分隔。

类型:String[]
Position:0
默认值:None
必需:True
接受管道输入:False
接受通配符:False

-NoPathUpdate

NoPathUpdate 仅适用于 Install-Script cmdlet。 NoPathUpdate 是由提供程序添加的动态参数,不受提供程序支持 Install-Package

类型:SwitchParameter
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-PackageManagementProvider

指定 PackageManagement 提供程序的名称。

类型:String
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-ProviderName

指定要将包搜索范围限定为的一个或多个包提供程序名称。 可以通过运行 Get-PackageProvider cmdlet 来获取包提供程序名称。

类型:String[]
别名:Provider
接受的值:Bootstrap, NuGet, PowerShellGet
Position:Named
默认值:None
必需:False
接受管道输入:True
接受通配符:False

-Proxy

指定请求的代理服务器,而不是直接连接到 Internet 资源。

类型:Uri
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-ProxyCredential

指定有权使用由 Proxy 参数指定的代理服务器的用户帐户。

类型:PSCredential
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-PublishLocation

指定包的已发布位置的路径。

类型:String
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-RequiredVersion

指定要安装的包的确切允许版本。 如果未添加此参数, Install-Package 请安装包的最新版本,该版本满足 MaximumVersion 参数指定的任何版本。

类型:String
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-RoleCapability

指定角色功能的数组。

类型:String[]
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-Scope

指定要为其安装包的范围。 此参数的可接受值如下所示:

  • 当前用户
  • AllUsers
类型:String
接受的值:CurrentUser, AllUsers
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-ScriptPublishLocation

指定脚本的已发布位置的路径。

类型:String
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-ScriptSourceLocation

指定脚本源位置。

类型:String
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-SkipDependencies

跳过软件依赖项的安装。

类型:SwitchParameter
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-SkipPublisherCheck

允许获取比已安装版本更新的包版本。 例如,由受信任的发布者数字签名但新版本未进行数字签名的已安装包。

类型:SwitchParameter
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-SkipValidate

跳过验证包凭据的开关。

类型:SwitchParameter
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-Source

指定一个或多个包源。 多个包源名称必须用逗号分隔。 可以通过运行 Get-PackageSource cmdlet 来获取包源名称。

类型:String[]
Position:Named
默认值:None
必需:False
接受管道输入:True
接受通配符:False

-Tag

指定要在包元数据中搜索的一个或多个字符串。

类型:String[]
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-Type

指定是使用模块、脚本还是同时搜索包。 此参数的可接受值如下所示:

  • 模块
  • 脚本
  • 全部
类型:String
接受的值:Module, Script, All
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-WhatIf

显示运行 cmdlet 会发生什么 Install-Package 情况。 命令脚本未运行。

类型:SwitchParameter
别名:wi
Position:Named
默认值:False
必需:False
接受管道输入:False
接受通配符:False

输入

Microsoft.PackageManagement.Packaging.SoftwareIdentity

可以通过管道将 SoftwareIdentity 对象传递给此 cmdlet。

输出

Microsoft.PackageManagement.Packaging.SoftwareIdentity

此 cmdlet 为安装的每个包返回 SoftwareIdentity 对象。

备注

在命令中包含包提供程序可以使动态参数可用于 cmdlet。 动态参数特定于包提供程序。 该 Get-Help cmdlet 列出 cmdlet 的参数集,并包括提供程序的参数集。 例如,Install-Package具有 PowerShellGet 参数集,其中包括-NoPathUpdateAllowClobberSkipPublisherCheck

重要

截至 2020 年 4 月,PowerShell 库不再支持传输层安全性(TLS)版本 1.0 和 1.1。 如果未使用 TLS 1.2 或更高版本,则尝试访问 PowerShell 库时会收到错误。 使用以下命令确保使用的是 TLS 1.2:

[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12

有关详细信息,请参阅 PowerShell 博客中的 公告