devenv.exe的Build命令是否支持单次调用指定多个编译配置
方案解答
devenv的原生/Build参数确实不支持单次指定多个编译配置,但是可以通过以下几种方式大幅降低编译耗时:
方案1:改用MSBuild编译(优先推荐)
MSBuild是VS底层的编译引擎,不需要加载VS的UI层,单次调用开销远低于devenv,直接用批处理串联四次编译命令的总耗时比原方案低50%以上,命令示例如下:
msbuild ForCmdBuild_u2018.sln /t:Build /p:Configuration=Release_Pro;Platform=x64 msbuild ForCmdBuild_u2018.sln /t:Build /p:Configuration=Release;Platform=x64 msbuild ForCmdBuild_u2019.sln /t:Build /p:Configuration=Release_Pro;Platform=x64 msbuild ForCmdBuild_u2019.sln /t:Build /p:Configuration=Release;Platform=x64
注意把上述命令中的Platform=x64替换为你实际使用的编译平台
方案2:新增解决方案批量编译配置(必须用devenv时选择)
你可以给每个解决方案新增自定义的批量编译配置,把需要编译的两个配置都加入编译列表,仅需2次devenv调用即可完成全版本编译,操作步骤如下:
- 打开对应解决方案,点击顶部菜单「生成」-「配置管理器」
- 点击「活动解决方案配置」下拉框,选择「新建」
- 自定义配置名如
All_Release,不勾选「创建新的项目配置」,确认保存 - 在配置列表中,给所有需要编译的项目勾选
Release、Release_Pro两个配置和对应平台,保存配置
两个解决方案都配置完成后,执行以下命令即可:
devenv ForCmdBuild_u2018.sln /Build All_Release devenv ForCmdBuild_u2019.sln /Build All_Release
方案3:合并解决方案(适配度高时选择)
如果两个版本的解决方案包含的项目重合度很高,可以把所有项目合并为同一个解决方案,再按方案2的方式配置全量编译项,即可实现单次调用完成所有编译,耗时最低。
内容的提问来源于stack exchange,提问作者Nick
相关产品推荐
相关产品推荐

