在我的项目中,我想在AfterBuild之后运行ILMerge目标,因此我执行了以下操作:
<Target Name="AfterBuild" AfterTargets="ILMerge" >
<Message Importance="High" Text="AfterBuild"></Message>
</Target>
<Target Name="ILMerge">
<Message Text="IlMerging" Importance="High" />
</Target>
但是不会显示“ IlMerging”文本,这意味着不触发AfterBuild中的AfterTargets。
为什么?
最佳答案
如果要在ILMerge
目标之后运行AfterBuild
目标,这是编写脚本的方式。
<Target Name="AfterBuild" >
<Message Importance="High" Text="AfterBuild"></Message>
</Target>
<Target Name="ILMerge" AfterTargets="AfterBuild">
<Message Text="IlMerging" Importance="High" />
</Target>
输出:
AfterBuild: AfterBuild
ILMerge: ILMerge
如果目标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>
输出:
ILMerge: ILMerge
AfterBuild: AfterBuild
这两个脚本都使用了命令行
msbuild testtarget.xml / t:AfterBuild