Использование имени конфигурации решения в качестве условия тестирования для MSBuild Target - PullRequest
2 голосов
/ 12 ноября 2011

Я наконец понял, почему моя цель BeforeBuild больше не работает должным образом - это так глупо, потому что изменились имена конфигурации проекта. Но я действительно хочу проверить имя конфигурации решения *1001*, а не имя проекта.

Я знаю, что имя конфигурации проекта хранится в $ (Configuration). Есть ли один для имени конфигурации решения? Или это просто невозможно, потому что (предположительно) имена решений известны только менеджеру конфигурации? Если да, может ли кто-нибудь порекомендовать хороший метод для управления конфигурациями? Я бы не хотел добавлять повсюду дубликаты имен конфигурации проекта ...

ОБНОВЛЕНИЕ: после поиска и чтения некоторых документов я не смог найти никаких доказательств того, что MSBuild знает имя конфигурации решения при компиляции его отдельных файлов проекта. Я пошел дальше и построил решение из командной строки, передав /v:diag, и вывел вывод в файл. Я искал файл, чтобы найти какие-либо признаки его, зная, что именем конфигурации решения является «Развертывание», но единственные вхождения этой строки появляются, когда проверяется условие BeforeBuild.

Ответы [ 3 ]

1 голос
/ 24 мая 2013

Смотрите мой другой ответ .Мне удалось создать расширение VS , чтобы получить имя конфигурации решения в виде макроса сборки (запись $(variable)).

0 голосов
/ 19 июня 2013

Существует свойство SolutionConfigurationContents, которое создается Msbulid во время обработки файла soluton и содержит в нем конфигурацию решения. При сборке из VS он будет содержать конфигурацию проекта (не решения).

0 голосов
/ 12 ноября 2011

Единственное решение, которое я до сих пор предлагал, - это создать собственную переменную среды на сервере TeamCity и проверить MSBuild на наличие ее в цели BeforeBuild.*: Я не мог использовать свою собственную переменную окружения, потому что по какой-то причине она не передавалась сборщику сборки.Но когда я использовал / v: n в настройках TeamCity MSBuild, я заметил, что есть $ (COMPUTERNAME), что в любом случае мне и нужно.В итоге я попробовал это, и это полностью сработало.

...