You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

NuGet CLI无法还原PackageReference包的问题求助

解决NuGet包还原成功但未缓存到本地目录的问题

我之前也碰到过一模一样的情况——明明命令行提示还原成功,本地缓存目录里却找不到Newtonsoft.Json包,给你几个亲测有效的排查和解决思路:

  • 彻底清理本地缓存残留
    先手动删掉C:\Users\<UserName>\.nuget\packages里所有和Newtonsoft.Json相关的文件夹(哪怕只剩空文件夹也清掉),然后执行命令清空所有NuGet本地缓存:

    nuget locals all -clear
    

    这个命令会清空缓存包、HTTP缓存和临时文件,避免残留的损坏文件干扰新的还原流程。

  • 检查项目文件的包引用配置
    打开你的.NET Core项目的.csproj文件,确认Newtonsoft.Json的引用格式正确,必须指定明确的版本号,比如:

    <PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
    

    如果版本号写的是范围(比如>=13.0.0)或者带条件限制,可能会触发NuGet的特殊逻辑,导致包不下载到预期缓存目录。

  • 查看详细还原日志定位问题
    执行还原命令时加上详细日志参数,能看到最底层的执行细节:

    nuget restore -verbosity detailed
    

    或者用MSBuild的详细日志:

    MSBuild /t:restore -verbosity detailed
    

    重点看日志里关于Newtonsoft.Json的部分,比如有没有提示“已找到兼容包无需下载”(可能本地其他隐藏缓存有残留)、权限不足无法写入目录,这些细节是定位问题的关键。

  • 检查NuGet源和配置文件
    先确认你的NuGet源是正常可用的:

    nuget sources list
    

    如果nuget.org源缺失或被禁用,重新添加官方源:

    nuget sources add -name nuget.org -source https://api.nuget.org/v3/index.json
    

    另外检查nuget.config文件(可能在项目根目录、用户目录或全局位置),看看有没有配置<add key="disableLocalCache" value="true" />,如果有改成false。

  • 尝试Visual Studio自带的还原功能
    有时候命令行的还原逻辑和VS内部处理有差异,你可以打开VS2017,右键点击项目(或整个解决方案),选择还原NuGet包,看看能不能正常下载到缓存目录。

  • 排查目录权限问题
    确认当前用户对C:\Users\<UserName>\.nuget\packages有读写权限,如果是用管理员权限运行的VS或命令行,缓存可能会写到管理员的用户目录里,记得去C:\Users\<AdminUserName>\.nuget\packages里看看有没有遗漏。

内容的提问来源于stack exchange,提问作者Joy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 08:10:58