visual studio 2017:通过命令行调用

时间:2018-06-11 20:10:43

标签: windows visual-studio command-line visual-studio-2017

在Visual Studio 2017(或者可能是任何版本)中,我想在IDE中打开一个解决方案并从命令行开始构建。如果解决方案已经打开,那么我只想让它开始构建(在IDE中)。

所以我可以打开这样的解决方案:

devenv solution.sln

或者我可以像这样构建它:

devenv /build solution.sln

还有:

devenv solution.sln /command ...

但关于"命令"的文档。有很难找到...示例是一些用户制作的宏,但我假设还有其他内置命令? - 这可能会有所帮助......?

但我不确定如何:

  • 在IDE中打开解决方案并立即构建
  • 如果它已经打开,就让它开始构建。

有没有办法做到这一点?

我的用例是从IBM Rhapsody中启动构建。在MSVS2012中,它支持一个执行这些任务的Rhapsody插件......但是自2013年以来已经弃用了插件,所以我可以通过重写其make文件内容让Rhapsody做我想做的事 - makefile只调用批处理文件脚本将执行我在此问题中尝试执行的命令 - 然后完成Rhapsody插件:)

1 个答案:

答案 0 :(得分:2)

实际上请注意:

  1. devenv solution.sln仅在新的VS IDE实例中打开解决方案。
  2. devenv /build solution.sln仅构建自上次构建以来已更改的项目,而无需打开VS IDE。要在解决方案中构建所有项目,请改用/ rebuild。

所以,如果您想

  

在IDE中打开解决方案并立即构建

您应该连续运行两个命令:

devenv solution.sln  
devenv /rebuild solution.sln

然后第二次仅使用/ rebuild以避免打开新的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