Если вы можете добавить следующее к каждому из ваших проектов:
<Target Name="DoStuffWithNewlyCompiledAssembly">
<Exec Command="" />
</Target>
... тогда вам нужно только добавить свойство:
<Target Name="Name">
<MSBuild Projects="" Properties="TargetsTriggeredByCompilation=DoStuffWithNewlyCompiledAssembly" />
</Target>
Это работает, потому что кто-то умныйв Microsoft добавили следующую строку в конце цели CoreCompile
в Microsoft.[CSharp|VisualBasic][.Core].targets
(имя файла зависит от языка и версии MSBuild / Visual Studio).
<CallTarget Targets="$(TargetsTriggeredByCompilation)" Condition="'$(TargetsTriggeredByCompilation)' != ''"/>
Так что, если вы укажете цельимя в свойстве TargetsTriggeredByCompilation
, ваша цель будет работать, если CoreCompile
выполняется - и ваша цель не будет работать, если пропущена CoreCompile
(например, потому что выходная сборка уже обновлена по отношению к коду).