执行Register-PackageSource添加NuGet包源无报错但未生效如何解决?
可能的原因及对应解决方法
权限与作用域配置问题
默认Register-PackageSource未指定-Scope参数时,会尝试写入Machine级别的NuGet配置,该操作需要管理员权限。普通权限下执行会静默写入失败且无报错。
解决方式二选一:- 以管理员身份启动PowerShell,重新执行注册命令
- 在原注册命令中添加
-Scope CurrentUser参数,将包源写入当前用户配置,无需管理员权限:
Register-PackageSource -Name "CaaS MyGet" -Location "https://www.myget.org/F/redacted/api/v3/index.json" -ProviderName "NuGet" -Trusted -Scope CurrentUserNuGet配置文件异常
检查对应层级的NuGet配置文件:当前用户级配置路径为%APPDATA%\NuGet\NuGet.Config,机器级配置路径为%ProgramFiles(x86)%\NuGet\Config\下的对应文件。确认文件没有设置只读属性,且XML格式没有损坏。如果存在异常,可以先备份原有配置,重置配置文件后再重新执行注册命令。PackageManagement模块版本过旧
旧版本的PackageManagement模块存在注册包源静默失败的已知问题,先执行命令更新模块:Install-Module -Name PackageManagement -Force更新完成后重启PowerShell窗口,再重新注册包源即可。
改用NuGet CLI直接添加
如果PowerShell命令始终不生效,可以直接通过NuGet CLI执行添加操作:nuget sources add -Name "CaaS MyGet" -Source "https://www.myget.org/F/redacted/api/v3/index.json" -Trusted添加完成后再执行
Get-PackageSource即可看到新增的包源。
内容的提问来源于stack exchange,提问作者David Peden
相关产品推荐
相关产品推荐

