1

У меня есть решение Visual Studio 2015, которое построит 10 проектов. В каждом проекте есть событие pre и post build, чтобы вызвать ant для разрешения и публикации кода. Эти события должны запускаться до и после каждой сборки проекта, поэтому перемещение событий в решение не будет работать.Visual Studio 2015 - запуск событий сборки сообщений только при построении из GUI

Каждый из проектов также должен быть построен из командной строки с использованием муравьев. Когда он строит из командной строки, события запускаются, но было бы предпочтительнее, если бы они не были.

Кто-нибудь знает, существует ли способ 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'"> 

Это предотвратит запуск событий пост-сборки при восстановлении зависимостей.