Visual Studio 2022中NuGet报无关NU1301错误如何解决?
解决Visual Studio 2022中无关包引发的NU1301错误
针对你遇到的NU1301错误(无关的System.Drawing.Common/4.7.2包报错,且错误提示的csproj引用不存在),可以按以下步骤逐一排查解决:
清理NuGet缓存
缓存损坏是这类错误的常见诱因:- 打开Visual Studio,依次点击「工具」→「NuGet包管理器」→「包管理器设置」
- 在「NuGet包管理器」→「常规」页面,点击「清除所有NuGet缓存」
- 或者用命令行彻底清理:打开终端运行
dotnet nuget locals all --clear
删除本地残留的包文件
关闭当前解决方案,找到目录下的packages文件夹,直接删除其中的System.Drawing.Common/4.7.2子文件夹;如果不确定,也可以删除整个packages文件夹,后续重新生成时NuGet会自动下载当前项目需要的包。清理项目的隐式引用与构建缓存
错误提示的csproj行无对应引用,大概率是隐式配置或构建缓存导致:- 检查解决方案下的
Directory.Build.props、Directory.Build.targets全局配置文件,以及项目目录下的.props/.targets文件,搜索System.Drawing.Common或Microsoft.Windows.SDK.NET.Ref,找到后删除相关引用节点 - 删除项目目录下的
obj和bin文件夹,然后重新生成解决方案
- 检查解决方案下的
检查并调整NuGet源配置
源不稳定或配置错误可能导致包信息获取失败:- 打开NuGet包管理器设置→「包源」,确保只保留官方NuGet源(
https://api.nuget.org/v3/index.json),其他非必要源暂时禁用 - 也可以用命令行查看和管理源:
dotnet nuget list source查看所有源,dotnet nuget disable source [源名称]禁用可疑源
- 打开NuGet包管理器设置→「包源」,确保只保留官方NuGet源(
隔离独立解决方案的包目录
若两个解决方案共享全局包目录可能互相影响,可给当前解决方案设置独立本地包目录:
在解决方案根目录创建nuget.config文件,写入以下内容:<?xml version="1.0" encoding="utf-8"?> <configuration> <config> <add key="globalPackagesFolder" value=".\packages" /> </config> </configuration>这样当前解决方案的包会存放在自身的
packages文件夹,与其他解决方案彻底隔离。
内容的提问来源于stack exchange,提问作者superticker
相关产品推荐
相关产品推荐

