在 visual studio 2017(或可能是任何版本)中,我想在 IDE 中打开一个解决方案并从命令行开始构建它。如果解决方案已经打开,那么我只想开始构建(在 IDE 中)。
所以我可以这样打开解决方案:
devenv solution.sln
或者我可以这样构建它:
devenv/build solution.sln
还有这个:
devenv solution.sln/command ...
但是很难找到有关“命令”的文档...该示例是一些用户制作的宏,但我假设还有其他内置命令? - 这可能有帮助...?
但我不确定如何:
有什么办法可以做到这一点吗?
我的用例是从 IBM Rhapsody 中启动构建。在 MSVS2012 中,它支持执行这些任务的 Rhapsody 插件......但是自 2013 年以来插件已被弃用,因此我可以通过重写其 make 文件内容让 Rhapsody 执行我想要的操作 - makefile 将只调用一个批处理文件脚本,它将执行我在这个问题中尝试执行的命令 - 然后 Rhapsody 插件完成 :)
最佳答案
实际上注意到:
devenv solution.sln 仅在新的 VS IDE 实例中打开解决方案。devenv/build solution.sln 仅在不打开 VS IDE 的情况下构建自上次构建以来发生变化的项目。要构建解决方案中的所有项目,请改用/rebuild。所以,如果你想
Open a solution in the IDE and have it build straight away
你应该连续运行这两个命令:
devenv solution.sln
devenv /rebuild solution.sln
然后在第二次使用/rebuild only 以避免打开一个新的 VS 实例。
更新:您可以制作一个.cmd 或.bat 文件包含以下内容:
tasklist /fi "imagename eq devenv.exe" /v | find /i "solution" 2>NUL
if "%ERRORLEVEL%"=="0" goto solution_is_running
if "%ERRORLEVEL%"=="1" goto solution_is_closed
:solution_is_running
devenv /rebuild solution.sln
goto:eof
:solution_is_closed
devenv solution.sln
devenv /rebuild solution.sln
goto:eof
或者使用:
Taskkill /IM devenv.exe /F
devenv solution.sln
devenv /rebuild solution.sln
关于windows - Visual Studio 2017 : open AND build solution from a command line call,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50805311/