在 Windows 上安装 PowerShellGet

重要

Windows PowerShell 5.1 附带了预安装的 1.0.0.1 版 PowerShellGet。 此版本的 PowerShellGet 功能有限,不支持 PowerShell 库的更新功能。 若要获得支持,必须更新到最新版本。

PowerShell 6.0 附带 1.6.0 版 PowerShellGet。 PowerShell 7.0 附带 2.2.3 版 PowerShellGet。 当前受支持的 PowerShellGet 版本为 2.2.5。 如果运行的是 Windows PowerShell 5.1,则必须安装较新版本。

为获得最佳效果,应始终安装最新的受支持版本。

更新预安装的 PowerShellGet 版本

PowerShellGet 模块包含用于安装和更新模块的 cmdlet:

  • Install-Module 安装最新版(非预发行版)模块。
  • Update-Module 在模块的最新版本高于当前安装的模块版本的情况下安装最新版(非预发行版)模块。 但是,仅当以前的版本是使用 Install-Module 安装的,此 cmdlet 才有效。

若要更新预安装的模块,必须使用 Install-Module。 从 PowerShell 库安装新版本后,可使用 Update-Module 安装较新版本。

更新适用于 Windows PowerShell 5.1 的 PowerShellGet

系统要求

  • PowerShellGet 需要 .NET Framework 4.5 或更高版本。 有关详细信息,请参阅安装面向开发人员的 .NET Framework

  • 若要访问 PowerShell 库,必须使用传输层安全性 (TLS) 1.2 或更高版本。 默认情况下,PowerShell 未配置为使用 TLS 1.2。 使用以下命令在 PowerShell 会话中启用 TLS 1.2。

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

    我们还建议将此代码行添加到 PowerShell 配置文件脚本中。 有关配置文件的详细信息,请参阅 about_Profiles

安装最新版本的 PowerShellGet

Windows PowerShell 5.1 附带了 PowerShellGet 版本 1.0.0.1,其中不包括 NuGet 提供程序。 使用 PowerShell 库时,PowerShellGet 需要该提供程序。

备注

必须从权限提升的 PowerShell 会话运行以下命令。 右键单击 PowerShell 图标,然后选择“以管理员身份运行”以启动提升的会话。

可通过以下两种方式安装 NuGet 提供程序:

  • 使用 Install-PackageProvider 在安装其他模块之前安装 NuGet

    运行以下命令以安装 NuGet 提供程序。

    Install-PackageProvider -Name NuGet -Force
    

    安装提供程序后,应能够在 PowerShell 库中使用任何 PowerShellGet cmdlet。

  • Install-Module 提示你安装 NuGet 提供程序

    以下命令尝试在没有 NuGet 提供程序的情况下安装更新的 PowerShellGet 模块。

    Install-Module PowerShellGet -AllowClobber -Force
    

    Install-Module 提示你安装 NuGet 提供程序。 键入 Y 以安装该提供程序。

    NuGet provider is required to continue
    PowerShellGet requires NuGet provider version '2.8.5.201' or newer to interact with NuGet-based
    repositories. The NuGet provider must be available in 'C:\Program Files\PackageManagement\ProviderAssemblies'
    or 'C:\Users\user1\AppData\Local\PackageManagement\ProviderAssemblies'. You can also install the NuGet
    provider by running 'Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force'. Do you
    want PowerShellGet to install and import the NuGet provider now?
    [Y] Yes  [N] No  [S] Suspend  [?] Help (default is "Y"): Y
    VERBOSE: Installing NuGet provider.
    

备注

如果尚未配置 TLS 1.2,则安装 NuGet 提供程序和其他包的任何尝试都将失败。

安装 PowerShellGet 后

安装新版本的 PowerShellGet 后,应打开新的 PowerShell 会话。 使用 PowerShellGet cmdlet 时,PowerShell 会自动加载最新版本的模块。

我们还建议将 PowerShell 库注册为受信任的存储库。 请使用以下命令:

Set-PSRepository -Name PSGallery -InstallationPolicy Trusted

有关详细信息,请参阅 Set-PSRepository