如何解决PostBuildEvent和AfterBuild目标之间的Visual Studio项目文件差异?
| 有人可以解释这些之间的区别:<Target Name=\"AfterBuild\">
<!-- task here -->
</Target>
和:
<PropertyGroup>
<PostBuildEvent>copy \"$(ProjectDir)\\..\\lib\\$(PlatformName)\\x.dll\" .</PostBuildEvent>
</PropertyGroup>
谢谢。
解决方法
PostBuildEvent属性能够保存作为Command属性传递给Exec任务的命令。从本质上讲,您最终得到的目标看起来像这样,
<Target Name=\"PostBuildEvent\">
<Exec Command=\"$(PostBuildEvent)\" />
</Target>
您可以配置条件,使其在IDE中通过设置运行,默认情况下,它仅在成功的构建上运行。
AfterBuild目标能够包含任意MSBuild任务,包括一个或多个Exec任务或MSBuild可用的任何其他任务,这会增加复杂性。
就执行时间而言,PostBuildEvent目标运行在\“ CoreBuild \”之前,而\“ AfterBuild \”目标运行在\“ CoreBuild \”之后。如果放置至关重要,则可以使用$(DependsOn ..)声明,或在新目标上指定BeforeTargets和AfterTargets,制作自己的目标并将其连接到需要运行的构建中的任何位置。
,PostBuildEvent和AfterBuild都是MSBuild目标。两者之间的区别在于调用它们时周围的条件
AfterBuild:此操作作为Build目标中的最后一个操作运行,无论构建是否成功,都将执行此操作。它在PostBuildEvent之后运行(如果完全运行)
PostBuildEvent:在构建完成后有条件地运行。它的运行时间非常可配置,但通常只有在构建成功完成并产生新输出后才能运行。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。