2015-06-01 5 views
4

Возможно ли определить, выполняется ли текущая сборка из Visual Studio, а не автоматическая сборка с TFS без создания отдельной конфигурации решения? Мне интересно, могу ли я исключить определенные события Post Build, если сборка работает на TFS 2013, но, если возможно, я бы хотел избежать целой отдельной конфигурации.Обнаружение сборки TFS Build и Visual Studio

ответ

4

Вам не нужно редактировать файл CSProj: просто использовать синтаксис CMD.EXE в Visual Studio после сборки события

Вы можете проверить, если работает в Visual Studio

IF "$(BuildingInsideVisualStudio)"=="true" ( … )

или внутри TFS Build (2013 или более поздняя версия)

IF "$(TF_BUILD)"=="True" ( … )

См оБСУЖДЕНИЕ TFS 2010 Build Automation and post-build event и Team Foundation Build environment variables.

3

Это возможно, и я, наконец, узнал, как:

  1. выгрузить проект в вопросе, который имеет PostBuildEvent определен.
  2. Редактирование файла .csproj.
  3. Найдите XML-элемент PostBuildEvent, и добавить атрибут Condition, как следующее:

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

На данный момент PostBuildEvent будет выполнять только тогда, когда построен с Visual Studio.

This answer и другие ответы на этот вопрос были полезны.

Это конкретное свойство кратко упоминается на странице this MSDN.