Visual Studio 2022不遵循NuGet.config中repositoryPath配置如何解决?
解决方案
- 首先修正配置概念误区:
repositoryPath是NuGet用来存放从远程源下载的第三方依赖包的路径,和你自己项目生成的nupkg包输出路径无关,调整该配置不会影响生成包的输出位置。 - 之前配置不生效的核心原因:
旧版非SDK风格的.NET Framework项目才使用PackageOutputDir节点,VS2022默认使用的SDK风格项目,控制生成包输出路径的节点是PackageOutputPath,节点名写错自然不会生效。如果你使用的是旧版非SDK风格的.NET Framework项目,继续使用PackageOutputDir即可。 - 正确的项目级配置方法:
打开你的.csproj文件,在无附加条件的顶级PropertyGroup节点下添加如下配置:
改完后重启VS或者重载项目,清理解决方案后重新生成,包就会输出到指定路径。<PropertyGroup> <!-- 已经在VS里开启生成时打包的话可以省略这行 --> <GeneratePackageOnBuild>True</GeneratePackageOnBuild> <!-- 替换为你想要的包输出路径 --> <PackageOutputPath>C:\Users\david\nuget-packages</PackageOutputPath> </PropertyGroup> - 解决方案级配置方法(无需每个项目单独修改):
在你的解决方案根目录新建Directory.Build.props文件,写入如下内容:
该配置会自动被当前解决方案下的所有项目继承,一次性全局生效。<Project> <PropertyGroup> <GeneratePackageOnBuild>True</GeneratePackageOnBuild> <PackageOutputPath>C:\Users\david\nuget-packages</PackageOutputPath> </PropertyGroup> </Project>
内容的提问来源于stack exchange,提问作者JohnWick
相关产品推荐
相关产品推荐

