Автоматизированные сборки в Team Foundation Server - PullRequest
7 голосов
/ 17 декабря 2010

Я настраиваю автоматическую сборку для своего решения. Тем не менее, я получаю сообщения об ошибках при копировании определенной информации в определенные папки. Это относится к созданию событий, которые есть у каждого проекта в моем решении.

Что мне было интересно, так это то, есть ли способ «отключить» отдельные события сборки в проектах или есть параметр, который нужно установить где-нибудь, который отключает эти события сборки?

Автоматическая сборка, которую я настроил, уже делает то, что должны делать события сборки отдельного проекта, поэтому он пытается повториться и вызывает проблемы. Мне все еще нужно, чтобы события сборки были связаны с проектами, потому что когда они выполняются вне среды разработки, они должны происходить для правильного функционирования приложения (события сборки связаны с динамическим обновлением информации).

Короче говоря, есть ли способ отключить сборки, связанные с каждым отдельным проектом в моем решении, без их фактического удаления? Мне нужно, чтобы они были там, мне просто нужно, чтобы они были, так сказать, «невидимыми», пока я запускаю автоматизированные сборки в среде разработки.

Я прошу прощения за многословие и за неопределенность всего, иногда трудно объяснить вещи, не отдавая слишком много.

РЕДАКТИРОВАТЬ: не столько редактирование, сколько дополнительная информация для ясности, но тем не менее. Основная цель, которую я пытаюсь достичь, состоит в том, чтобы отключить «пост-сборки», связанные с каждым из проектов в моем решении. Я хочу сохранить их, просто отключить их, пока я запускаю их через внутренние автоматизированные сборки / тесты

Ответы [ 4 ]

14 голосов
/ 30 декабря 2010

После многочисленных исследований свойства "BuildingInsideVisualStudio" и множества настроек, чтобы получить правильный синтаксис, моя команда и я нашли то, что искали.

Мы вставили заявление

if '$(BuildingInsideVisualStudio)' == 'true' <executed code>

формат в разделе «Командная строка события после сборки» в свойствах проекта> вкладка «События сборки».

8 голосов
/ 18 декабря 2010

Некоторый код сценария после сборки должен работать:

if "$(BuildingInsideVisualStudio)"=="" (
    @echo TFS build
) else (
    @echo Visual Studio build
)

Поместите существующий код в соответствующий блок в зависимости от того, хотите ли вы, чтобы он выполнялся только в сборках VS или только в сборках TFS

2 голосов
/ 23 февраля 2011

Вы также можете изменить файл .csproj на что-то вроде этого:

  <PropertyGroup Condition=" '$(BuildingInsideVisualStudio)' == 'true' ">
    <PostBuildEvent>commands to execute</PostBuildEvent>
  </PropertyGroup>

К сожалению, Visual Studio не будет отображать какую-либо информацию на вкладке «События сборки», что может затруднить дальнейшее обслуживание.

1 голос
/ 18 декабря 2010

Вы можете проверить любые свойства сборки команды и посмотреть, заполнены ли они.Если это так, вы можете предположить, что это сборка команды.Я использую этот подход в нашей сборке, чтобы после развертывания метка развертывания и т. Д. Возникала только в том случае, если она работает на сервере сборки.

Вот ссылка с различными свойствами сборки команды

<SomeTask Condition="$(BuildDefinitionName)!=''">
...