Возможно ли определить, выполняется ли текущая сборка из Visual Studio, а не автоматическая сборка с TFS без создания отдельной конфигурации решения? Мне интересно, могу ли я исключить определенные события Post Build, если сборка работает на TFS 2013, но, если возможно, я бы хотел избежать целой отдельной конфигурации.Обнаружение сборки TFS Build и Visual Studio
ответ
Вам не нужно редактировать файл 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.
Это возможно, и я, наконец, узнал, как:
- выгрузить проект в вопросе, который имеет PostBuildEvent определен.
- Редактирование файла .csproj.
Найдите XML-элемент PostBuildEvent, и добавить атрибут Condition, как следующее:
<PostBuildEvent Condition="'$(BuildingInsideVisualStudio)' == 'true'">
На данный момент PostBuildEvent будет выполнять только тогда, когда построен с Visual Studio.
This answer и другие ответы на этот вопрос были полезны.
Это конкретное свойство кратко упоминается на странице this MSDN.