如何在Visual Studio 2019 C++项目中不修改.vcxproj覆盖输出目录?
无需修改.vcxproj文件覆盖输出目录的方案
我来给你几个实用的办法,既能把输出目录改成本地存在的路径,又完全不会改动已经提交到Git的.vcxproj文件:
方法1:利用项目.user文件(最简单)
VS的.vcxproj.user文件是专门用来存储本地个性化配置的,默认会被Git忽略(一般.gitignore里已经包含了*.vcxproj.user规则),它的配置优先级会高于.vcxproj文件:
- 右键你的C++项目,选择属性
- 在配置属性 -> 常规里,修改输出目录为你的本地路径
- 点击确定保存,VS会自动生成(或更新)
[你的项目名].vcxproj.user文件 - 这个文件只会在你的本地生效,不会被提交到Git,完美解决问题
方法2:使用Directory.Build.props全局配置文件
这是MSBuild提供的自定义配置方式,你可以在项目根目录创建一个专属的本地配置文件,同样不会提交到Git:
- 在项目根目录新建一个名为
Directory.Build.props的文件 - 写入以下内容,替换成你的本地路径:
<Project> <PropertyGroup> <!-- 分别为Debug和Release配置本地输出路径 --> <OutDir Condition="'$(Configuration)' == 'Debug'">D:\LocalOutput\Debug\</OutDir> <OutDir Condition="'$(Configuration)' == 'Release'">D:\LocalOutput\Release\</OutDir> </PropertyGroup> </Project>
- 把这个文件添加到.gitignore里,MSBuild在构建时会优先读取这个文件的配置,自动覆盖.vcxproj里的输出目录设置
方法3:结合环境变量灵活配置
如果你需要更灵活的路径控制,可以用环境变量来实现:
- 在本地系统中添加一个环境变量,比如
LOCAL_PROJECT_OUT_DIR,值设为你的本地输出路径 - 然后通过方法1的.user文件,把输出目录设置为
$(LOCAL_PROJECT_OUT_DIR)\$(Configuration)\ - 这样后续要改路径的话,直接修改环境变量就行,不用动任何项目文件
内容的提问来源于stack exchange,提问作者Jiří Lechner
相关产品推荐
相关产品推荐

