Visual Studio中使用Ctrl+F7编译C++文件时采用何种构建配置?
VS2017中Ctrl+F7编译单个C++文件的配置选择逻辑与控制方法
配置选择逻辑
- 针对非SharedItems项目的C++文件:VS会采用该文件所属项目的当前活动配置(就是顶部工具栏解决方案配置下拉框里选中的选项,比如Debug|x64),和启动项目的配置无关。
- 针对SharedItems项目的文件:由于SharedItems本身不参与构建,它的文件会被多个其他项目引用。这时Ctrl+F7编译时,VS会优先使用最近一次完成构建的、依赖该SharedItems的项目的配置;如果没有最近的构建记录,会 fallback 到解决方案的默认配置(即配置列表里排在第一个的选项),这就是你觉得“随机”的原因。
控制配置的方法
- 手动锁定目标配置:编译前先在解决方案资源管理器里选中你想用的依赖项目,切换到目标配置(比如Release|x86),先执行一次该项目的构建(哪怕只构建一次),之后再用Ctrl+F7编译SharedItems里的文件,就会沿用这个项目的配置。
- 调整解决方案默认配置:在解决方案属性的“配置属性”里,把常用的依赖项目的配置设为默认,不过这个方法优先级不如手动指定的高,适合长期固定使用某一个配置的场景。
- 直接从依赖项目打开文件:不要从SharedItems项目里打开文件,而是从引用它的依赖项目中找到对应的链接文件并打开,这时用Ctrl+F7编译就会明确使用该依赖项目的当前配置。
内容的提问来源于stack exchange,提问作者GlobalEngineer
相关产品推荐
相关产品推荐

