【问题标题】:When does Visual Studio call target AfterBuild & BeforeBuild? And how is it handled when these targets are not defined?Visual Studio 何时调用目标 AfterBuild 和 BeforeBuild?当这些目标没有定义时,它是如何处理的?
【发布时间】:2010-04-09 03:37:06
【问题描述】:

今天我遇到了一个类似的问题,它让我想起了这个帖子。在 Visual Studio 中,如果我们打开 .csproj 文件,我们会看到它们告诉我们取消注释 AfterBuild 和 BeforeBuild 两个目标,以便在当前项目的构建之后和之前执行它们。

我的问题是:这两个目标在 Visual Studio 中在哪里调用?如果没有定义目标(被注释掉),它是如何处理的?

【问题讨论】:

    标签: visual-studio msbuild


    【解决方案1】:

    这些目标包含在一个名为Microsoft.Common.targets 的文件中。该文件通过另一个导入 Microsoft.CSharp.targets(或其他语言的类似文件)导入到您的脚本中。所以它们总是在构建开始时定义。在您的项目文件中,您可以通过在前面提到的文件的 <Import 语句之后重新声明它们来覆盖这些目标。如果您在 <Import 之前声明它们,那么您的目标将被忽略,因为将使用 Microsoft.Common.targets 中的空目标。

    有关扩展构建过程的更多信息,请参阅我的文章 Inside MSBuild 或我的书 Inside the Microsoft Build Engine

    作为对先前评论者的回应,这些目标是构建您的项目的构建过程的一部分。它们是在 MSBuild 文件中捕获的,既不是 MSBuild 的一部分,也不是 Visual Studio 的一部分。

    【讨论】:

      猜你喜欢
      • 2017-10-10
      • 1970-01-01
      • 1970-01-01
      • 2023-03-22
      • 2011-09-01
      • 1970-01-01
      • 2022-11-03
      • 2011-08-21
      • 2013-04-02
      相关资源
      最近更新 更多