Win10下VS2022如何统一管理NuGet包并让vcxproj用绝对路径
解决VS2022 C++项目NuGet包引用使用绝对路径的问题
1. 调整NuGet全局配置
打开C:\Users\你的用户名\AppData\Roaming\NuGet\NuGet.Config,在<config>节点中添加useAbsolutePathsForRepositoryPath配置项,最终配置如下:
<config> <add key="repositoryPath" value="D:\vc_packages" /> <add key="globalPackagesFolder" value="D:\vc_packages" /> <add key="useAbsolutePathsForRepositoryPath" value="true" /> </config>
这个配置会强制NuGet在生成项目引用时,使用repositoryPath设置的绝对路径,而非基于项目位置的相对路径。
2. 修正现有项目的引用路径(若需)
对于已经存在相对路径引用的项目,手动修改.vcxproj文件中所有指向vc_packages的路径,把类似....\vc_packages\glfw.3.4.0\...的相对路径替换为D:\vc_packages\glfw.3.4.0\...。完成后,后续新增的NuGet包会自动使用绝对路径。
3. 验证配置效果
重启VS2022,给项目添加一个新的NuGet包,打开.vcxproj文件检查ImportGroup和EnsureNuGetPackageBuildImports节点中的路径,确认已经是D:\vc_packages开头的绝对路径。
额外说明
- 保持
repositoryPath和globalPackagesFolder路径一致,避免包存储位置混乱。 - 如果是团队项目,可以将配置好的NuGet.Config放在项目根目录并提交到版本控制,确保所有成员使用相同的包存储路径规则。
内容的提问来源于stack exchange,提问作者user23620257
相关产品推荐
相关产品推荐

