Когда вы определяете цели и зависимости, вы определяете дерево зависимостей. MSBuild может выполнять задачи в любом порядке, в котором сочтет нужным, в том числе параллельно (при использовании /m
), если порядок не нарушает никаких зависимостей.
В вашем случае MSBuild сначала решил запустить step 1 MyInstaller1.msi
+ step 1 MyInstaller2.msi
, а если вы добавите /m
, они, вероятно, будут работать параллельно. Если они не могут работать параллельно, это, вероятно, является ограничением в вашем проекте - возможно, использование одних и тех же промежуточных файлов - и вам следует это исправить.
Если вы хотите, чтобы выходные данные были упорядочены таким образом по причинам производительности, которые вы не можете объяснить MSBuild, я думаю, вы можете использовать хак <MSBuild>
, описанный выше.