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'"> 

這將防止重建依賴關係時運行後構建事件。

相關問題