В CruiseControl.NET, у меня есть два проекта: один для построения и один для развертывания пакетов сборки.
Наша сборка в основном основана на MSBuild, и по мере ее запуска панель инструментов постоянно обновляется с последним результатом сборки. Это означает, что даже если полная сборка может занять 15 минут, вы можете точно увидеть, где она находится, и что она продвигается вперед.
Развертывание выполняется с помощью другого инструмента (VisualBuild, хотя я вижу такое же основное поведение с другими инструментами, как PowerShell). Это еще одна долговременная задача, но в этом случае панель управления не обновляется с ее выходом по мере ее продвижения. Поскольку развертывание может занять много времени, трудно сказать, что происходит, или что-то застопорилось. Выход регистрируется в журнале CruiseControl.NET и будет отображаться на панели управления, когда все будет сделано, но не во время развертывания.
Есть ли способ получить результат от других произвольных длительных задач, обновленных на панели управления, в чем-то напоминающем реальное время? Что делает MSBuild особенным в этом отношении?