Visual Studio 2017 MFC项目如何设置用户专属输出目录避免Git变更提示
解决VS2017 MFC项目调试输出目录的Git提交问题
针对你遇到的不同开发者需要自定义调试模式二进制输出路径,又不想触发Git变更的问题,有以下几个实用方案:
1. 用VS的.user文件覆盖共享配置
Visual Studio的.vcxproj.user文件是每个开发者的本地专属配置文件,默认不会被Git追踪(只要你的.gitignore里包含了*.user)。操作步骤:
- 打开项目属性面板,切换到调试模式,找到配置属性 -> 常规 -> 输出目录。
- 点击输出路径右侧的下拉箭头,选择「编辑」,在弹出的窗口中,把配置范围改成「用户文件(User File)」,再输入你的专属绝对路径。
- 保存后,修改会写入
.vcxproj.user,不会改动团队共享的.vcxproj文件,自然不会触发Git的未提交变更提示。
2. 用环境变量统一配置逻辑
团队约定用环境变量来定义输出路径的根目录,每个人在自己的系统里配置专属值:
- 在项目属性的输出目录中,用环境变量代替硬编码的绝对路径,比如写
$(MY_APP_OUTPUT)\win64。 - 自己的Windows系统中,通过「此电脑右键 -> 属性 -> 高级系统设置 -> 环境变量」,添加名为
MY_APP_OUTPUT的系统变量,值设为你的专属路径(比如C:/MyApp),同事则设为他的D:/Sources/binaries/foo。 - 这种方式不需要修改任何项目文件,所有差异都在个人系统的环境变量里,完全不会影响Git仓库。
3. 手动拆分项目文件的共享与本地配置
如果需要更灵活的控制,可以手动编辑.vcxproj文件,把输出目录的配置拆分为共享默认值和本地覆盖值:
- 用文本编辑器打开项目的
.vcxproj文件,找到调试模式对应的<OutputDirectory>节点,替换成以下内容:
<OutputDirectory Condition=" '$(LocalOutputDir)' != '' ">$(LocalOutputDir)\win64</OutputDirectory> <OutputDirectory Condition=" '$(LocalOutputDir)' == '' ">默认的共享输出路径</OutputDirectory>
- 打开VS,进入「工具 -> 选项 -> 项目和解决方案 -> VC++项目设置」,点击「用户宏」,添加名为
LocalOutputDir的宏,值设为你的专属根路径。这个宏会保存在本地的.user文件中,不会影响共享的项目文件。
内容的提问来源于stack exchange,提问作者alextekeuf
相关产品推荐
相关产品推荐

