【问题标题】:How do you call an overridden MSBuild target如何调用重写的 MSBuild 目标
【发布时间】:2010-10-25 10:25:51
【问题描述】:

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

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

你会看到这样的注释:

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

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

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

【问题讨论】:

    标签: .net msbuild


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-09-14
      • 2023-03-03
      • 2010-11-20
      • 1970-01-01
      • 1970-01-01
      • 2013-10-21
      • 2023-03-03
      相关资源
      最近更新 更多