下载基于NuGet的C#项目后无法还原包,指定版本私有包找不到如何解决?
问题根因
- 你项目依赖的
Own_Product.Client.Core 1.52.1961版本在所有已配置的NuGet源(公有nuget源、本地缓存、公司私有Azure DevOps源)中均不存在,你公司私有源当前仅存在20.3.18.1版本的对应包,因此还原时报NotFound错误。 - 手机Authenticator反复弹出授权申请,是因为你访问公司私有NuGet源时的认证信息没有本地持久化,每次NuGet向私有源发起请求都需要重新做身份验证,触发二次验证弹窗。
解决方案
一、解决NuGet包还原失败问题
- 方案1:升级项目依赖版本
打开项目的.csproj文件(或packages.config文件,取决于项目使用的包管理格式),将所有Own_Product.Client.Core的依赖版本号修改为私有源中存在的20.3.18.1,修改完成后重新执行nuget restore即可。 - 方案2:补充缺失的1.52.1961版本包
如果项目必须使用1.52.1961版本,可联系项目原有维护者获取对应版本的.nupkg文件,有两种方式可用:- 将nupkg文件直接放入本地NuGet缓存目录
C:\Users\this_User\.nuget\packages\ - 将nupkg文件上传到公司的
Own_ProductNuGetFeed私有源中
操作完成后再执行还原命令即可。
- 将nupkg文件直接放入本地NuGet缓存目录
- 排查项:先执行
nuget sources list检查当前配置的所有NuGet源,确认是否遗漏了存储旧版本内部包的其他私有源,若有遗漏添加对应源后再尝试还原。
二、解决Authenticator频繁弹授权问题
- 方式1:打开Visual Studio,登录你公司的Azure DevOps账号,登录时勾选「保持登录状态」,Visual Studio会自动将认证信息缓存到系统层面,NuGet访问私有源时会自动复用该缓存凭证,无需每次触发二次验证。
- 方式2:进入Azure DevOps后台生成个人访问令牌(PAT),为令牌开通私有包的读取权限,再将PAT配置到对应NuGet源的认证信息中,之后访问私有源就无需每次走二次验证流程。
内容的提问来源于stack exchange,提问作者Dominique
相关产品推荐
相关产品推荐

