AfterTarget未在AfterBuild中触发

Ola*_*ese 2 msbuild

在我的项目中,我想在AfterBuild之后运行ILMerge目标,所以我做了以下事情:

  <Target Name="AfterBuild" AfterTargets="ILMerge" >
     <Message Importance="High" Text="AfterBuild"></Message>
  </Target>
  <Target Name="ILMerge">
   <Message Text="IlMerging" Importance="High" />
  </Target>
Run Code Online (Sandbox Code Playgroud)

但是不显示"IlMerging"文本,这意味着AfterBuild中的AfterTargets没有被触发.

为什么?

Che*_*rra 8

如果要在ILMerge目标之后运行目标,AfterBuild则应该编写脚本.

  <Target Name="AfterBuild" >
     <Message Importance="High" Text="AfterBuild"></Message>
  </Target>
  <Target Name="ILMerge" AfterTargets="AfterBuild">
   <Message Text="IlMerging" Importance="High" />
  </Target>
Run Code Online (Sandbox Code Playgroud)

输出:

AfterBuild: AfterBuild

ILMerge: ILMerge
Run Code Online (Sandbox Code Playgroud)

如果Target AfterBuild应该在ILMerge目标之后运行,那么您需要将AfterBuild目标更改为KMoraz建议的目标.

  <Target Name="AfterBuild" DependsOnTargets="ILMerge" >
     <Message Importance="High" Text="AfterBuild"></Message>
  </Target>
  <Target Name="ILMerge" >
   <Message Text="IlMerging" Importance="High" />
  </Target>
Run Code Online (Sandbox Code Playgroud)

输出:

ILMerge: ILMerge

AfterBuild: AfterBuild
Run Code Online (Sandbox Code Playgroud)

两个脚本都使用命令行

msbuild testtarget.xml/t:AfterBuild