构建取决于AfterBuild Microsoft.Common.targets

高特

我试图弄清楚何时运行不同的目标。但是对于AfterBuild目标,我有点困惑,它的注释是“在项目中重新定义此目标,以便在Build之后运行任务”。但是当我查看Build依赖于什么时,我会看到:

<BuildDependsOn>
        BeforeBuild;
        CoreBuild;
        AfterBuild
 </BuildDependsOn>

这是否意味着Build目标在“ AfterBuild”之后运行,还是我在这里遗漏了一些东西?我是Build的新手,所以也许我错过了一些琐碎的事情。

斯蒂金

您应该在同一个文件中做一些进一步的研究(只需BuildDependsOn在文本编辑器中进行搜索):您将看到Build目标本身只是一个看起来像这样的存根:

<Target
  Name="Build"
  DependsOnTargets="$(BuildDependsOn)"/>

因此,当一个调用时msbuild /t:Build,msbuild查找构建目标并看到它具有DependsOnTargets该值属性BeforeBuild;CoreBuild;AfterBuild(请注意,它是一个列表)。由于DependsOnTargets总是在目标本身之前执行,因此其中列出的所有目标首先以列出的顺序执行只有这样,构建目标本身才会被执行(因此,是的,AfterBuild之后有效地发生了)。但是Build目标本身实际上不做任何事情:编译等都发生在CoreBuild中,因此在调用它时,一切都已经完成了。

乍一看似乎很奇怪,但是实际上这是使目标相互依赖并定义目标运行顺序的一种非常可扩展的方法。(有DependsOn,还有BeforeTargetsAfterTargets)因此,假设您想要一个为清晰起见Build之后有效运行的目标,则可以使用相同的原理:

<Target Name="MyTarget" AfterTargets="Build">
  ...
</Target>

请注意,这实际上是首选的方法:在大型项目中,重写AfterBuild并不可靠,因为您不知道其他人是否也已经这样做,并且在多个位置覆盖它只会导致发现最后一个被调用。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类常见问题

MS-Build 2017“ Microsoft.WebApplication.targets”丢失

来自分类Dev

如何构建Common Lisp项目?

来自分类Dev

缺少Microsoft Common Controls

来自分类Dev

Common Lisp:asdf取决于特定版本

来自分类Dev

Microsoft.WebApplication.targets

来自分类Dev

vs-mda-targets\Microsoft.MDA.targets was not found

来自分类Dev

找不到vs-mda-targets \ Microsoft.MDA.targets

来自分类Dev

MVC | MVC中的Microsoft.Practices.EnterpriseLibrary.common错误

来自分类Dev

错误MSB4019:找不到导入的项目Microsoft.TextTemplating.targets“

来自分类Dev

错误:*。csproj无法在MonoDevelop上导入“ $(MSBuildBinPath)\ Microsoft.CSharp.targets”

来自分类Dev

从Mono使用Microsoft.VisualStudio.Web.targets?

来自分类Dev

如何在VS2015中使用T4?(未找到Microsoft.TextTemplating.targets文件)

来自分类Dev

打开项目时找不到Microsoft.CompactFramework.CSharp.targets

来自分类Dev

如何下载Microsoft.TeamFoundation.Framework.Common.dll

来自分类Dev

安装.NET Core RTM后缺少Microsoft.DotNet.Web.targets

来自分类Dev

Visual Studio 2015(ASP.NET Core)编译错误错误:Microsoft.DotNet.Common.Targets-具有相同键的项已添加

来自分类Dev

取决于:samba4-common-bin

来自分类Dev

取决于:samba4-common-bin

来自分类Dev

如何构建Common Lisp项目?

来自分类Dev

在Visual Studio中打包云项目:Microsoft.WindowsAzure.targets:目录不为空

来自分类Dev

插入MariaDB会触发删除所需的软件包,具体取决于mysql-common

来自分类Dev

安装.NET Core RTM后缺少Microsoft.DotNet.Web.targets

来自分类Dev

将 Microsoft.CodeAnalysis.Common 安装到 Visual Studio 2015

来自分类Dev

Microsoft.Cpp.Clang.targets 错误:元素 <ExceptionHandling> 的“Async”值无效

来自分类Dev

损坏的 Xamarin.Android.Common.targets 文件:_CompileJava 上的错误

来自分类Dev

ARM 模板:取决于——您是指链接的“Microsoft.Resources/deployments”还是在其中创建的资源?

来自分类Dev

针对 Microsoft.Common.CurrentVersion.targets 之上的新语言

来自分类Dev

\MSBuild\16.0\Bin\Microsoft.CSharp.targets 文件未找到

来自分类Dev

在 Web 应用程序构建期间未找到 Microsoft.WebApplication.targets

Related 相关文章

  1. 1

    MS-Build 2017“ Microsoft.WebApplication.targets”丢失

  2. 2

    如何构建Common Lisp项目?

  3. 3

    缺少Microsoft Common Controls

  4. 4

    Common Lisp:asdf取决于特定版本

  5. 5

    Microsoft.WebApplication.targets

  6. 6

    vs-mda-targets\Microsoft.MDA.targets was not found

  7. 7

    找不到vs-mda-targets \ Microsoft.MDA.targets

  8. 8

    MVC | MVC中的Microsoft.Practices.EnterpriseLibrary.common错误

  9. 9

    错误MSB4019:找不到导入的项目Microsoft.TextTemplating.targets“

  10. 10

    错误:*。csproj无法在MonoDevelop上导入“ $(MSBuildBinPath)\ Microsoft.CSharp.targets”

  11. 11

    从Mono使用Microsoft.VisualStudio.Web.targets?

  12. 12

    如何在VS2015中使用T4?(未找到Microsoft.TextTemplating.targets文件)

  13. 13

    打开项目时找不到Microsoft.CompactFramework.CSharp.targets

  14. 14

    如何下载Microsoft.TeamFoundation.Framework.Common.dll

  15. 15

    安装.NET Core RTM后缺少Microsoft.DotNet.Web.targets

  16. 16

    Visual Studio 2015(ASP.NET Core)编译错误错误:Microsoft.DotNet.Common.Targets-具有相同键的项已添加

  17. 17

    取决于:samba4-common-bin

  18. 18

    取决于:samba4-common-bin

  19. 19

    如何构建Common Lisp项目?

  20. 20

    在Visual Studio中打包云项目:Microsoft.WindowsAzure.targets:目录不为空

  21. 21

    插入MariaDB会触发删除所需的软件包,具体取决于mysql-common

  22. 22

    安装.NET Core RTM后缺少Microsoft.DotNet.Web.targets

  23. 23

    将 Microsoft.CodeAnalysis.Common 安装到 Visual Studio 2015

  24. 24

    Microsoft.Cpp.Clang.targets 错误:元素 <ExceptionHandling> 的“Async”值无效

  25. 25

    损坏的 Xamarin.Android.Common.targets 文件:_CompileJava 上的错误

  26. 26

    ARM 模板:取决于——您是指链接的“Microsoft.Resources/deployments”还是在其中创建的资源?

  27. 27

    针对 Microsoft.Common.CurrentVersion.targets 之上的新语言

  28. 28

    \MSBuild\16.0\Bin\Microsoft.CSharp.targets 文件未找到

  29. 29

    在 Web 应用程序构建期间未找到 Microsoft.WebApplication.targets

热门标签

归档