今天我遇到了一个类似的问题,它让我想起了这个主题。在Visual Studio中,如果我们打开.csproj文件,我们会看到他们告诉我们取消注释两个targets "AfterBuild"和"BeforeBuild",以便在当前项目构建之前和之后执行它们。
我的问题是:在Visual Studio中如何调用这两个目标?如果没有定义这些目标(即被注释掉),它会如何处理?
今天我遇到了一个类似的问题,它让我想起了这个主题。在Visual Studio中,如果我们打开.csproj文件,我们会看到他们告诉我们取消注释两个targets "AfterBuild"和"BeforeBuild",以便在当前项目构建之前和之后执行它们。
我的问题是:在Visual Studio中如何调用这两个目标?如果没有定义这些目标(即被注释掉),它会如何处理?
Microsoft.Common.targets
的文件中。通过另一个导入Microsoft.CSharp.targets
(或其他语言类似的文件),该文件被导入到您的脚本中。因此,在构建开始时,它们始终被定义。在项目文件中,您可以通过在先前提到的文件的<Import
语句之后重新声明它们来覆盖这些目标。如果您在<Import
之前声明它们,则会忽略您的目标,因为将使用Microsoft.Common.targets
中的空目标。
有关扩展构建过程的更多信息,请参阅我的文章Inside MSBuild或者更好的是我的书Inside the Microsoft Build Engine!
回应上一位评论者,这些目标是构建过程的一部分,用于构建您的项目。它们被捕获在MSBuild文件中,既不是MSBuild也不是Visual Studio的一部分。