当我运行构建时,有时我会看到代码更改,我忘了。所以我想取消构建。由于构建锁定了我的IDE,我必须使用 Ctrl + Break ,但是它的响应速度不够快。
我正在寻找命令行方法,所以我可以在快速启动时点击批处理文件。 我试过这个命令:
Taskkill /IM aspnet_compiler.exe /F
但是,这只会阻止当前项目的构建,并且我的多项目解决方案中的下一个项目将启动。
如何使用命令行取消构建?
答案 0 :(得分:17)
我必须添加/t
标志才能终止整个MSBuild.exe
进程树。那就是:
taskkill /im msbuild.exe /f /t
在我的情况下,我从Gnu Emacs开始MSBuild.exe
,由于某种原因,如果我想重新启动它,Gnu Emacs并不总能杀死MSBuild.exe
。我用它作为备份。我在VS2010中做c ++。
答案 1 :(得分:6)
以下内容在所有Visual Studio实例中停止所有项目的构建:
taskkill /im msbuild.exe /f
答案 2 :(得分:1)
不幸的是,Visual Studio是编译器。 aspnet_compiler用于编译视图,这就是你看到它在列表中产生的原因。
您可以通过获取process explorer并查看流程树来进行验证。你会注意到devenv永远不会生成msbuild,csc或任何其他编译器。但devenv确实在CPU和I / O中飙升。
答案 3 :(得分:1)
我想出了一个适合我的粗略方法。
我有以下批处理脚本。
@echo off
echo KILL BILLd
for /L %%i in (1,1,10) do (
Taskkill /IM aspnet_compiler.exe /F
timeout 1
)
(以上,10 =秒)
然后我在同一个文件夹中创建该批处理脚本的快捷方式,这样我就可以执行其他操作。
在VS2010中,我已将 CTRL + SHIFT + B 设置为我的构建全部。 (不是重建)。
对于快捷方式,因为当我看到遗忘的代码更改时,我的手指通常仍然在该区域中。我的批处理快捷键组合是 CTRL + SHIFT + ALT + B 。
答案 4 :(得分:1)
我有这个bash脚本,有耀斑。
@echo off
REM by jnh from http://www.chris.com/ascii/index.php?art=objects/explosives
echo " _.--------------- "
echo " _-- --_ "
echo "- -) "
echo "| | "
echo " \._ _./ "
echo " ```--. . , . .--''' "
echo " | | | "
echo " .-=|| | |=-. "
echo " `-=#$$$$$#=-' "
echo " | ; :| "
echo " _____.,-#$$$$$#&#~,._____ "
echo NUKE IT ALLLLLLL
REM kills all MSBuild processes
taskkill /F /IM MSBuild.exe /T
REM Just holds command window open long enough to admire explosion.
timeout 1
答案 5 :(得分:0)
例如,当我们编译项目时,某些文件被占用,例如“无法复制”等等。
步骤:
任务管理器->
性能->
资源监控器->
关联处理程序->
搜索“已占用的文件名。”
这种方法的优点是直观,不需要记住DOS命令,但是它的缺点是我们需要搜索和操作多次。
答案 6 :(得分:-1)
转到菜单BUILD,然后单击选项:CANCEL。在VS2013中测试。