tags:

views:

341

answers:

1

In MSBuild you can override a <Target /> from another file in your own. For example the AfterBuild target included in Microsoft.Common.targets file simply by defining your own Target with the same name:

<Target Name="AfterBuild">
    <!-- Do something different -->
</TargetName>

You'll see a note like this:

Overriding target "AfterBuild" in project "C:\Windows\Microsoft.NET\Framework\v3.5\Microsoft.Common.targets" with target "AfterBuild" from project "XXXXX".

Is there any way to call the original AfterBuild target?

I'd like to do this to instrument certain complex default Targets and then execute the original behavior. Many targets like Build expose a BuildDependsOn property that can be used for this. Many others do not - and I'd like to override them without completely duplicating their content.

+2  A: 

Hi, When an MSBuild script is processed it will also process the imported files. The result will be a single in memory canonical representation of the entire script. When a target is encountered that already exists the previous definition is discarded, therefore it is not possible to call the original target.

Sayed Ibrahim Hashimi