windows - 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 插件 :)
解决方案
实际上请注意:
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
推荐阅读
- apache-kafka - 包含 Kafka 消费者的服务的蓝/绿部署方法
- azure - Azure 逻辑应用按 SQL 排序
- numpy - 如何在动画共振振幅中正确改变共振频率?
- python - 如何使用 python 自动上传 Youtube
- php - Foreach 从一个数组访问数据
- javascript - 如何在清单 v3 Chrome 扩展程序中定期调用函数?
- java - Java 使用带有 javax.sound.sampled.Clip 的 mp3、ogg 和 wav 文件(或获取声音文件的比特率)
- sql - 基于变量有条件地检索数据
- java - 我为这个计划编写了一个程序,但我想知道程序是否有任何答案和我的写作不同?
- c# - C# 将联系人同步到 AD 的最佳方法