Visual Studio 何时调用目标 AfterBuild 和 BeforeBuild?当这些目标未定义时,它是如何处理的?

4

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

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

1个回答

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

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

回应上一位评论者,这些目标是构建过程的一部分,用于构建您的项目。它们被捕获在MSBuild文件中,既不是MSBuild也不是Visual Studio的一部分。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接