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