【问题标题】:Visual Studio 2015 - Running Post Build Events only when built from the GUIVisual Studio 2015 - 仅在从 GUI 构建时运行构建后事件
【发布时间】:2016-12-01 13:25:28
【问题描述】:
我有一个构建 10 个项目的 Visual Studio 2015 解决方案。在每个项目中都有一个 pre 和 post build 事件来调用 ant 来解析和发布代码。这些事件应该在每个项目构建之前和之后触发,因此将事件移至解决方案是行不通的。
每个项目还应该能够使用 ant 从命令行构建。当它从命令行构建时,会触发事件,但最好不要触发。
有谁知道是否有办法让 VS/MSBuild 确定它是从 GUI 内触发还是从命令行触发?
【问题讨论】:
标签:
visual-studio
visual-studio-2015
ant
post-build-event
pre-build-event
【解决方案1】:
我不确定您是否可以在 PostBuildEvent 中执行此操作,但您可以使用 AfterBuild 目标并添加如下条件:
<Target Name="AfterBuild">
<Exec Command="SOME_COMMAND" Condition=" '$(BuildingInsideVisualStudio)' == 'true' " />
</Target>
您需要手动编辑项目文件才能执行此操作,因为项目属性不允许您对此进行控制。
【解决方案2】:
如果您使用的是 Visual Studio 2017,则需要将条件语句作为属性添加到 PostBuildEvent。
<PostBuildEvent Condition="'$(BuildingInsideVisualStudio)' == 'true'">
这将防止在重新构建依赖项时运行构建后事件。