你如何调用被覆盖的MSBuild目标

Pau*_*der 11 .net msbuild

在MSBuild中,您可以覆盖<Target />自己的另一个文件.例如,只需通过定义具有相同名称的自己的Target,文件中包含的AfterBuild目标Microsoft.Common.targets:

<Target Name="AfterBuild">
    <!-- Do something different -->
</TargetName>
Run Code Online (Sandbox Code Playgroud)

你会看到这样一个音符:

在项目"XXXXX"中使用目标"AfterBuild"覆盖项目"C:\ Windows\Microsoft.NET\Framework\v3.5\Microsoft.Common.targets"中的目标"AfterBuild".

有没有办法调用原始的AfterBuild目标?

我想这样做来检测某些复杂的默认目标,然后执行原始行为.像Build这样的许多目标暴露了可用于此的BuildDependsOn属性.许多其他人没有 - 我想在不完全复制其内容的情况下覆盖它们.

Say*_*imi 13

处理MSBuild脚本时,它还将处理导入的文件.结果将是整个脚本的单个内存规范表示.当遇到已存在的目标时,先前的定义将被丢弃,因此无法调用原始目标.

Sayed Ibrahim Hashimi

我的书:Microsoft Build Engine内部:使用MSBuild和Team Foundation Build