Единственный способ сделать это, если вы можете обнаружить, когда произошла ошибка. По сути, задача должна будет записать какой-либо артефакт или предоставить вам выходной параметр, в котором вы можете указать, произошел сбой или нет. Вы должны использовать это вместе с установкой ContinueOnError в true для самой задачи. Идея состоит в том, чтобы установить для ContinueOnError значение true, разрешить выполнение всех вызовов задачи и затем после этого посмотреть, не было ли ошибки, и действовать соответствующим образом.
Я сделал нечто подобное для выполнения модульных тестов из MSBuild. Я хотел, чтобы все модульные тесты выполнялись во всех тестовых сборках, но также хотел завершить сборку после их завершения. Итак, я установил для ContinueOnError значение true, затем произвел поиск файла XML, в который были записаны результаты, для любых неудачных тестовых случаев, а также собрал сообщения из этого файла.
В вашем случае задача AspNetCompiler не записывает ни один такой файл. AspNetCompiler завершает работу утилиты aspnet_compiler.exe, расширяя ToolTask (через ToolTaskExtension), чтобы вы могли отслеживать ExitCode. Это довольно сложно без написания собственной задачи по ее расширению. Если вы используете Target Batching, вы можете вызвать задачу AspNetCompiler, а затем записать каждый ExitCode в файл. Затем после этого просмотрите этот файл и найдите ненулевой код выхода. Возможно, вы захотите написать свою собственную пользовательскую задачу, которая расширяет задачу AspNetCompiler и должна быть довольно простой для написания.
Для получения дополнительной информации о пакетировании см. Ресурсы по адресу http://sedotech.com/Resources#Batching.
.