离线机器PowerShell中NuGet包安装异常:Install-PackageProvider失效但Import可用
解决离线机器NuGet包提供者无法自动加载的问题
方法1:从本地NuGet提供者包安装(推荐)
在在线机器上执行以下命令,下载NuGet提供者的离线包:
Save-PackageProvider -Name NuGet -Path C:\Temp\NuGetOffline -Force这会将NuGet提供者的
.nupkg文件保存到指定路径。将
C:\Temp\NuGetOffline文件夹复制到离线机器的任意路径(比如D:\NuGetOffline)。在离线机器的管理员PowerShell中执行:
Install-PackageProvider -Name NuGet -Source D:\NuGetOffline -Force这个命令会从本地包文件完成安装,无需联网,安装后NuGet提供者会被自动注册,每次启动PowerShell都会自动加载。
方法2:修复已复制的文件夹注册问题
如果你已经复制了%programfiles%\PackageManagement\ProviderAssemblies\nuget文件夹,可尝试以下步骤让系统识别:
- 打开管理员PowerShell,运行命令刷新PackageManagement的缓存:
Get-PackageProvider -ListAvailable -Force - 如果仍未自动加载,手动完成提供者注册:
(注:虽然离线无法访问该源,但此操作会补全提供者的注册逻辑,不影响离线使用)Register-PackageSource -Name NuGet -ProviderName NuGet -Location https://api.nuget.org/v3/index.json -Trusted
验证结果
重启PowerShell后,运行以下命令确认NuGet已自动加载:
Get-PackageProvider
如果输出中包含NuGet,则说明问题解决。
内容的提问来源于stack exchange,提问作者Joshua Schroijen
相关产品推荐
相关产品推荐

