1

我有一个Visual Studio 2015解决方案可以构建10个项目。在每个项目中都有一个预先构建事件和后期构建事件来调用ant来解析和发布代码。这些事件应该在每个项目构建之前和之后触发,因此将事件移动到解决方案是行不通的。Visual Studio 2015 - 仅在从GUI构建时运行发布事件

每个项目也应该能够使用ant从命令行构建。当它从命令行构建时,触发事件,但如果它们不是,则会更好。

有谁知道是否有VS/MSBuild确定它是从GUI内还是从命令行触发的方法?

回答

2

我不知道,你可以在PostBuildEvent做到这一点,但你可以使用AfterBuild目标,并添加这样的条件:

<Target Name="AfterBuild"> 
    <Exec Command="SOME_COMMAND" Condition=" '$(BuildingInsideVisualStudio)' == 'true' " /> 
    </Target> 

你需要手工在编辑的项目文件要做到这一点,因为项目属性不会让你控制这个。

1

如果您使用的是Visual Studio 2017,则需要将条件语句作为属性添加到PostBuildEvent中。

<PostBuildEvent Condition="'$(BuildingInsideVisualStudio)' == 'true'"> 

这将防止重建依赖关系时运行后构建事件。

相关问题