Есть ли какой-нибудь способ избежать случайной сборки неправильной конфигурации Visual Studio? - PullRequest
3 голосов
/ 21 февраля 2009

В Visual Studio у меня есть настраиваемые действия MSBuild для различных уровней - разработка, подготовка, тестирование и так далее. Эти сценарии будут автоматически компилировать все, выполнять замену web.config и отправлять код в расположение на основе выбранной конфигурации. Обычно, когда я хочу запустить одну из этих сборок на чем-то отличном от разработки, я вызываю скрипт сборки из командной строки.

Хотя я стараюсь быть как можно более усердным, иногда я (и другие, работающие в решении) случайно оставляю конфигурацию в той, к которой они не стремились - возможно, они переключили ее на «промежуточную» конфигурацию, чтобы посмотреть, как код выглядит со своими конкретными директивами препроцессора. Затем они нажали «F5», думая, что они находятся в разработке, чтобы отладить ... и случайно вытолкнули из строя код.

Таким образом, вопрос заключается в том, есть ли способ по-прежнему привязывать сценарии сборки к конфигурации, но запрещать сборку определенных конфигураций из IDE? Или всплывающее предупреждение? Или я начну с того, что неправильно?

Ответы [ 2 ]

3 голосов
/ 25 февраля 2009

Чтобы промежуточная сборка не удалась, если это не Team Build, вы должны иметь возможность использовать

<Error
  Text="No Staging builds except on the Team Build server"
  Condition=" '$(IsDesktopBuild)'=='true' And $(Configuration)='Staging' " />

CruiseControl.NET также передает отличительные свойства в msbuild, поэтому аналогичная идея будет работать с одним из них вместо IsDesktopBuild.

Я не знаю каких-либо различий в свойствах по умолчанию между сборкой Visual Studio и командной строкой msbuild, но если вы можете выдержать небольшую дополнительную печать, это должно сделать работу

<Error
  Text="You didn't say the magic word"
  Condition=" '$(MagicWord)'!='please' And $(Configuration)='Staging' " />

тогда

msbuild /p:Configuration=Staging /p:MagicWord=please

Visual Studio не будет включать дополнительное свойство, поэтому сборка завершится неудачей.

0 голосов
/ 21 февраля 2009

Класс задач для добавления дополнительных элементов управления процессом компиляции MSBuild.

...