在 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。