在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插件:)
答案 0 :(得分:2)
实际上请注意:
devenv solution.sln
仅在新的VS IDE实例中打开解决方案。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