2012-03-01 2 views
6

Когда я запускаю сборку, иногда я вижу изменение кода, которое забыл. Поэтому я хочу отменить сборку. Из-за сборки, блокирующей мою IDE, я должен использовать Ctrl + Перерыв, однако он не отвечает достаточно быстро.Как отменить сборку Visual Studio с помощью командной строки?

Я ищу подход командной строки, поэтому я могу просто поразить пакетный файл в моем быстром запуске. Я попробовал эту команду:

Taskkill /IM aspnet_compiler.exe /F 

Однако, это только останавливает текущий проект из здания, а следующий в моем решении нескольких проектов запускал.

Как я могу отменить сборку с помощью командной строки?

ответ

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.

5

Следующие остановки сборки для всех проектов, во всех случаях Visual Studio:

taskkill /im msbuild.exe /f 
+0

Эта команда не работает. Когда моя визуальная студия строит, в списке процессов нет файла MSBuild.exe. –

+0

Visual Studio не порождает 'MSBuild.exe' как отдельный процесс. Он использует MSBuild «Framework» в процессе. Он даже не запускает 'CSC.EXE' (компилятор C#), кстати, он использует in-process для этого. –

+0

Извините - я был в режиме C++ (для чего это работает) – Fraser

1

К сожалению, Visual Studio является компилятор. aspnet_compiler предназначен для компиляции представлений, поэтому вы видите его в списке.

Вы можете проверить, получив process explorer и посмотрев на дерево процессов. Вы заметите, что devenv никогда не запускает msbuild, csc или любой другой компилятор. Но devenv делает всплеск в CPU и I/O.

12

Мне нужно было добавить флаг /t, чтобы убить все дерево процессов MSBuild.exe. То есть:

taskkill /im msbuild.exe /f /t 

В моем случае, я начинаю MSBuild.exe из Gnu Emacs и по какой-то причине Gnu Emacs не всегда в состоянии убить MSBuild.exe, если я хочу, чтобы перезапустить его. Я использую это как резервную копию.Я делаю C++ в VS2010.

+1

Что делает флаг '/ t'? Нам нужно понимание, а не только рецепт ответа. – eh9

+0

/T сообщает Windows о завершении процесса, а также о любых дочерних процессах. Я замечаю, что MSBuild.exe может запускать дочерние процессы во время работы. Без убийства всех детей компиляция может быть оставлена ​​в непредсказуемом состоянии (или может продолжаться в некотором роде). Хороший способ наблюдать - использовать инструмент sysinternals, Process Explorer (procexp.exe). Вы можете видеть, что MSBuild.exe порождает несколько детей. –

-1

Перейдите в меню BUILD, а затем щелкните по опции: CANCEL. протестирован в VS2013.

Смежные вопросы