关于VS NuGet包无法更新,设置包源映射无效的问题

文章讲述了作者在尝试使用antsmemoryprofiler后遭遇VS与.NETCore项目冲突,导致NuGet包管理问题,包括自动更新失败、路径限制和包源映射需求。通过一系列排查和配置修改,最终在nuget.config文件中正确设置包源解决了问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前几天使用了一次ants memory profiler软件,之后发现VS无法创建.net core项目了,只有framework项目。不确定是不是它带来的冲突。

没找到办法,于是卸载VS,重装,这一弄不得了。直接把VS弄坏了,重装后,VS无法编译任何项目,打开项目之后,发现所有NuGet引用包都是这样。中间还有一次没弄好,搞得VS2019无法安装,卸载干净之后才装上。

目前已安装VS2019 ,VS2022

之后,便是无尽的惆怅!!!没想到这么个小事情,把我这几年的程序猿能难到不行!!!

更新的时候发现提示要包源映射。还有的是红色叉号,当时没有截图

各种乱象丛生:

1:打开项目nuget包无法自动更新

2:手动更新,提示失败,要么是手动更新一个包,结果所有包都来了一次更新,等半天最后提示失败.,如NuGet 错误 NU1101、"ResolvePackageAssets" task failed unexpectedly due to max path limitation of NuGet package cache.....

3:NuGetPackages未找到

4:更新包:提示“需要包源映射”,设置了映射之后,依然无法工作。

以上报错,有些可以通过错误提示来解决,比如NuGetPackages未找到,一般是放在了“C:\Program Files (x86)\Microsoft Visual Studio\Shared”下,如果没有该文件夹,手动创建一个即可。nuget的包会下载到这个文件夹,但依然不能解决我遇到的问题。

最后的现象就卡在这里了,“需要包源映射”!!!NuGetPackages文件夹下不知道何时已经下载了很多包,但为什么它就识别不到呢,很奇怪!你都把东西放进口袋里了,不知道从口袋里拿???

痛定思痛,实在不想重装系统!我觉得这只是个很小的错误,于是想设置包源怎么会没用呢???一定是哪里配置不对,于是去官网寻找答案

官方介绍也很简单,跟着操作就行了,但我试了很多遍都不行。

最后,时间从昨天来到今天上午,按照文档,我把默认全局包文件夹的位置换个位置

修改配置文件C:\Program Files (x86)\NuGet\Config\Microsoft.VisualStudio.Offline.config

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <packageSources>
    <add key="Microsoft Visual Studio Offline Packages" value="C:\Program Files (x86)\Microsoft SDKs\NuGetPackages\"/>
  </packageSources>
  <!-- 加入该配置,自定义位置E:\NuGet\packages -->
   <config> 
    <add key="globalPackagesFolder" value="E:\NuGet\packages" />
  </config>
</configuration>

我是想,以前的位置既然不行,那换个位置,于是呢,原来的项目还是不能编译,“需要包源映射”依然提示!!!于是重新创建个项目试试,发现其实从nuget下载的包是可以到达E:\NuGet\packages下的,看来还是设置上存在猫腻!

下一步找到配置文件NuGet.Config,也许每个人的机器上会不一样,我的是在:“C:\Users\用户名\AppData\Roaming\NuGet”下,用Everything搜到的。打开配置文件发现,与官方的不太一样,其中packageSources项和packageManagement项呈现的是父子关系(当时没截图,没备份),而官方配置看起来是平级的

看官方文档介绍:

  • 在 nuget.config 文件中声明所需的包源。
  • 在源声明之后,添加 <packageSourceMapping> 元素,它指定每个源的所需映射。
  • 为每个正在使用的源声明一个 packageSource 元素。
    • 根据需要添加任意数量的模式。

mapping关系每次修改,都会存在这里。

简单点,我直接把官方这段拿过来用,稍作修改。重启VS 2022

啊!美好的事情发生了,竟然OK了。黄色感叹号都消失了。编译通过!

之后打开VS2019,有些引用在经过手动调整后,也好了。

整个过程,还是有点糊涂的。这个节点官方说是适用于PackageRefrence的项目,但我的其实是Package.config。 

总之,就先这样吧。。。不敢再折腾了!

参考:

1:包源映射 | Microsoft Learn

2:nuget.config 文件参考 | Microsoft Learn

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Boogaloo-Jer

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值