13

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

tasklist /nh /fi "imagename eq XDesProc.exe" | find /i "XDesProc.exe" && (
TASKKILL /F /IM "XDesProc.exe" 
) || (
echo XAML designer is not running 
) 

Но ERRORLEVEL равно 1 тоже и билд терпит неудачу, если XDesProc.exe не работает.

ответ

25

Вы можете использовать условный тест на PID, чтобы избежать этого:

taskkill /f /fi "pid gt 0" /im xdesproc.exe 
+0

Большое спасибо, Ганс! –

+0

Я ценю эту запись, так как она мне тоже помогла. Я хочу, чтобы я правильно понял, что происходит, чтобы уточнить, так это читать как, насильно убить все процессы, у которых идентификатор процесса больше 0 И кто является xdesproc.exe? Я не понимаю синтаксиса фильтров в этом случае, являются ли последующие фильтры разделенными пробелом? Спасибо – TargetofGravity

+0

Чтобы уточнить, извинения, я пропустил мое окно редактирования комментариев, «taskkill /?» примеры показывают, что каждый фильтр определяется его собственным префиксом «/ fi». Если это так, то не пыталась бы уничтожить xdesproc.exe все еще, и если бы не в возвращенном отфильтрованном списке, не было бы ошибкой, поскольку процесс не найден? – TargetofGravity