Visual Studio 2019中ASP.NET Core项目NuGet包文件夹配置咨询
嘿,我来帮你捋清楚这个问题~
问题分析与解决方案
为什么没生成项目级Packages文件夹?
首先得明确:这不是你的操作错误,是ASP.NET Core项目的默认行为导致的。从.NET Core 1.x开始,ASP.NET Core项目默认采用PackageReference格式管理NuGet包,替代了传统的packages.config。这种模式下,NuGet包默认会下载到全局缓存目录(比如Windows系统下是C:\Users\<你的用户名>\.nuget\packages),而不是项目目录下的Packages文件夹。
如何让包安装到项目级Packages文件夹?
如果一定要把包存到项目目录下的Packages文件夹,你需要修改项目的NuGet配置:
- 在项目根目录下创建(或编辑已有的)
nuget.config文件 - 写入以下配置内容:
<?xml version="1.0" encoding="utf-8"?> <configuration> <config> <!-- 指定项目级的包存储路径 --> <add key="globalPackagesFolder" value=".\Packages" /> </config> </configuration> - 保存文件后,右键项目 → 管理NuGet程序包,重新安装或更新包,此时项目根目录就会生成
Packages文件夹,所有包都会下载到这里。
注:这个配置仅对当前项目生效,因为
nuget.config放在项目目录下。
如何设置解决方案级的Packages文件夹?
如果希望整个解决方案的所有项目都把包统一存到解决方案根目录的Packages文件夹,操作步骤如下:
- 在解决方案根目录下创建
nuget.config文件 - 写入以下配置内容:
<?xml version="1.0" encoding="utf-8"?> <configuration> <config> <!-- 指定解决方案级的包存储路径 --> <add key="globalPackagesFolder" value=".\Packages" /> </config> </configuration> - 保存后,先清理解决方案(菜单 → 生成 → 清理解决方案),再右键解决方案 → 还原NuGet包,此时解决方案根目录会生成
Packages文件夹,所有项目的包都会统一存放在这里。
额外小提示
- 如果你习惯传统的
packages.config模式,也可以切换:右键项目 → 管理NuGet程序包 → 点击右上角设置图标 → 包管理 → 默认包管理格式选择packages.config。不过这种模式在ASP.NET Core中已经不推荐,PackageReference的灵活性和效率更高。 - 不管用哪种方式,记得把
Packages文件夹添加到.gitignore(如果用Git管理代码),避免把大量包文件提交到代码仓库。
内容的提问来源于stack exchange,提问作者ramby




