首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Powershell:如何在未连接的机器上安装PowerShell的Nuget提供程序,以便从PS命令行安装nuget包?

Powershell:如何在未连接的机器上安装PowerShell的Nuget提供程序,以便从PS命令行安装nuget包?
EN

Stack Overflow用户
提问于 2018-07-18 16:15:24
回答 8查看 199.2K关注 0票数 70

我正在尝试从Powershell命令行安装pswindowsupdate.2.0.0.4.nupkg到一台没有连接到互联网的Win 7计算机上。我运行的是PS5.1.14409.1005。我从https://www.preview.powershellgallery.com/packages/PSWindowsUpdate/2.0.0.4那里得到了nupkg

PS命令Install-Module -Name pswindowsupdate.2.0.0.4.nupkg -Repository {path to pswindowsupdate.2.0.0.4.nupkg}抛出错误消息:

PowerShellGet需要NuGet提供者版本“2.8.5.201”或更高版本才能与基于NuGet的存储库进行交互。必须在'C:\Program \PackageManagement\ProviderAssemblies‘或’C:\ NuGet‘NuGet中提供NuGet提供程序。您还可以通过运行‘NuGet -MinimumVersion 2.8.5.201-Force’来安装-Name提供程序。您希望PowerShell现在安装和导入NuGet提供程序吗?

当然,说“是”不能安装NuGet提供商,因为我没有连接到互联网。

我获得了nuget.exe (v4.7.0),将其存储在'C:\Program \PackageManagement\ProviderAssemblies‘中,并在我的path语句中添加了'C:\Program \PackageManagement\ProviderAssemblies’。但是,执行Install-Module -Name pswindowsupdate.2.0.0.4.nupkg -Repository {path to pswindowsupdate.2.0.0.4.nupkg}仍然失败。

NuGet provider到底是什么?只是nuget.exe吗?如何获得和安装PowerShell的Nuget提供程序(v2.8.5.201或更高版本),以便可以从PowerShell命令行安装这个nuget包?

注意: Visual根本不涉及我的问题

EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2018-07-18 18:47:03

MSDocs为您的场景说明如下:

为了第一次执行,PackageManagement需要一个因特网连接来下载Nuget包提供程序。但是,如果您的计算机没有internet连接,并且需要使用Nuget或PowerShellGet提供程序,则可以在另一台计算机上下载它们并将它们复制到目标计算机上。使用以下步骤执行此操作:

  1. 运行Install-PackageProvider -Name NuGet -RequiredVersion 2.8.5.201 -Force从具有internet连接的计算机安装提供程序。
  2. 安装之后,您可以找到安装在$env:ProgramFiles\PackageManagement\ReferenceAssemblies\\\<ProviderName\>\\\<ProviderVersion\>$env:LOCALAPPDATA\PackageManagement\ProviderAssemblies\\\<ProviderName\>\\\<ProviderVersion\>中的提供程序。
  3. 将文件夹(在本例中为Nuget文件夹)放置在目标计算机上的相应位置。如果目标计算机是Nano服务器,则需要从Nano server运行来下载正确的Nuget二进制文件。
  4. 重新启动PowerShell以自动加载包提供程序.或者,运行Get-PackageProvider -ListAvailable列出计算机上可用的所有包提供程序。然后使用Import-PackageProvider -Name NuGet -RequiredVersion 2.8.5.201将提供程序导入到当前的PowerShell会话。
票数 31
EN

Stack Overflow用户

发布于 2020-04-07 10:45:07

尽管我尝试了前面的所有答案,但只有以下一个解决了问题:

1-开放Powershell (作为管理)

2-运行:

代码语言:javascript
运行
复制
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12

3-运行:

代码语言:javascript
运行
复制
Install-PackageProvider -Name NuGet

作者是Niels:微软论坛

票数 136
EN

Stack Overflow用户

发布于 2018-07-19 12:09:26

我接受了trebleCode的答案,但我想提供更多的细节,说明我在我的未连接的Win 7机器上安装nupkg的兴趣pswindowsupdate.2.0.0.4.nupkg的步骤,方法是遵循trebleCode的答案。

首先:在仔细研究了一下之后,我想我找到了trebleCode所指的MS文档:

引导NuGet提供程序和NuGet.exe

安装-PackageProvider

为了继续,正如trebleCode所说的,我做了以下工作

在我连接的机器上安装NuGet提供程序

在连接的机器(Win 10计算机)上,我从PS命令行运行Install-PackageProvider -Name NuGet -RequiredVersion 2.8.5.208 -Force。Nuget软件是从网络中获得的,并安装在我的本地连接机器上。

安装之后,我在NuGet上找到了C:\Program Files\PackageManagement\ProviderAssemblies提供程序(注意:相对于\ReferenceAssemblies,文件夹名\ProviderAssemblies是相对于trebleCode的答案的一个细微差别。

提供程序软件位于如下文件夹结构中:

代码语言:javascript
运行
复制
C:\Program Files\PackageManagement\ProviderAssemblies
   \NuGet
      \2.8.5.208
         \Microsoft.PackageManagement.NuGetProvider.dll

在我的未连接机器上安装NuGet提供程序

我将\NuGet文件夹(及其所有子文件夹)从连接的计算机复制到一个拇指驱动器上,并将其复制到我的未连接(Win 7)机器上的C:\Program Files\PackageManagement\ProviderAssemblies中。

我在我的未连接(Win 7)机器上启动PS (v5),并运行Import-PackageProvider -Name NuGet -RequiredVersion 2.8.5.208将提供程序导入到当前的PowerShell会话。

我运行了Get-PackageProvider -ListAvailable并看到了这个(NuGet出现在以前不存在的地方):

代码语言:javascript
运行
复制
Name                     Version          DynamicOptions                                                                                                                                                                      
----                     -------          --------------                                                                                                                                                                      
msi                      3.0.0.0          AdditionalArguments                                                                                                                                                                 
msu                      3.0.0.0                                                                                                                                                                                              
NuGet                    2.8.5.208        Destination, ExcludeVersion, Scope, SkipDependencies, Headers, FilterOnTag, Contains, AllowPrereleaseVersions, ConfigFile, SkipValidate                                             
PowerShellGet            1.0.0.1          PackageManagementProvider, Type, Scope, AllowClobber, SkipPublisherCheck, InstallUpdate, NoPathUpdate, Filter, Tag, Includes, DscResource, RoleCapability, Command, PublishLocati...
Programs                 3.0.0.0          IncludeWindowsInstaller, IncludeSystemComponent

在未连接的机器上创建本地存储库

在未连接(Win 7)机器上,我创建了一个文件夹作为我的PS存储库(例如,c:\users\foo\Documents\PSRepository)。

我注册了回购:Register-PSRepository -Name fooPsRepository -SourceLocation c:\users\foo\Documents\PSRepository -InstallationPolicy Trusted

安装pswindowsupdate支持的NuGet包

我在我的未连接的pswindowsupdate.2.0.0.4.nupkg机器上获得nupkg pswindowsupdate.2.0.0.4.nupkg并将其复制到c:\users\foo\Documents\PSRepository上。

通过执行Find-Module -Repository fooPsRepository,我了解了模块的名称

代码语言:javascript
运行
复制
Version    Name                                Repository           Description                                                                                                                      
-------    ----                                ----------           -----------                                                                                                                      
2.0.0.4    PSWindowsUpdate                     fooPsRepository      This module contain functions to manage Windows Update Client.

我通过执行Install-Module -Name pswindowsupdate安装了模块

我通过执行Get-Command –module PSWindowsUpdate来验证安装的模块

代码语言:javascript
运行
复制
CommandType     Name                                               Version    Source                                                                                                                 
-----------     ----                                               -------    ------                                                                                                                 
Alias           Download-WindowsUpdate                             2.0.0.4    PSWindowsUpdate                                                                                                        
Alias           Get-WUInstall                                      2.0.0.4    PSWindowsUpdate                                                                                                        
Alias           Get-WUList                                         2.0.0.4    PSWindowsUpdate                                                                                                        
Alias           Hide-WindowsUpdate                                 2.0.0.4    PSWindowsUpdate                                                                                                        
Alias           Install-WindowsUpdate                              2.0.0.4    PSWindowsUpdate                                                                                                        
Alias           Show-WindowsUpdate                                 2.0.0.4    PSWindowsUpdate                                                                                                        
Alias           UnHide-WindowsUpdate                               2.0.0.4    PSWindowsUpdate                                                                                                        
Alias           Uninstall-WindowsUpdate                            2.0.0.4    PSWindowsUpdate                                                                                                        
Cmdlet          Add-WUServiceManager                               2.0.0.4    PSWindowsUpdate                                                                                                        
Cmdlet          Enable-WURemoting                                  2.0.0.4    PSWindowsUpdate                                                                                                        
Cmdlet          Get-WindowsUpdate                                  2.0.0.4    PSWindowsUpdate                                                                                                        
Cmdlet          Get-WUApiVersion                                   2.0.0.4    PSWindowsUpdate                                                                                                        
Cmdlet          Get-WUHistory                                      2.0.0.4    PSWindowsUpdate                                                                                                        
Cmdlet          Get-WUInstallerStatus                              2.0.0.4    PSWindowsUpdate                                                                                                        
Cmdlet          Get-WUJob                                          2.0.0.4    PSWindowsUpdate                                                                                                        
Cmdlet          Get-WULastResults                                  2.0.0.4    PSWindowsUpdate                                                                                                        
Cmdlet          Get-WURebootStatus                                 2.0.0.4    PSWindowsUpdate                                                                                                        
Cmdlet          Get-WUServiceManager                               2.0.0.4    PSWindowsUpdate                                                                                                        
Cmdlet          Get-WUSettings                                     2.0.0.4    PSWindowsUpdate                                                                                                        
Cmdlet          Get-WUTest                                         2.0.0.4    PSWindowsUpdate                                                                                                        
Cmdlet          Invoke-WUJob                                       2.0.0.4    PSWindowsUpdate                                                                                                        
Cmdlet          Remove-WindowsUpdate                               2.0.0.4    PSWindowsUpdate                                                                                                        
Cmdlet          Remove-WUServiceManager                            2.0.0.4    PSWindowsUpdate                                                                                                        
Cmdlet          Set-WUSettings                                     2.0.0.4    PSWindowsUpdate                                                                                                        
Cmdlet          Update-WUModule                                    2.0.0.4    PSWindowsUpdate 

我想我可以走了

票数 50
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51406685

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档