Использование MSBUILD, когда указанная конфигурация не указана - PullRequest
0 голосов
/ 30 ноября 2011

У меня есть решение с несколькими проектами. Я пытаюсь использовать MSBUILD для автоматизации развертывания. У меня есть следующие значения конфигурации для сборки 1. Отладка 2. Выпуск 3. Dev Для некоторых проектов я использую режим Release для конфигурации DEV. Но при использовании DEV в качестве конфигурации в команде MSBUILD выдается исключение, сообщающее, что конфигурация DEV не найдена.

Можно ли как-то сказать MSBUILD использовать режим Release, если DEV недоступен для проекта, когда DEV используется в качестве конфигурации в MSBUILD?

Спасибо Ashwani

Ответы [ 2 ]

2 голосов
/ 04 декабря 2011

В вашем (предположительно C #) файле проекта обычно есть строка, которая выглядит следующим образом:

<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>

Для проектов, которые не имеют конфигурации "Dev", вы можете получить желаемое поведение, добавив еще одну строку прямо перед этой ...

<Configuration Condition=" '$(Configuration)' == 'Dev' ">Release</Configuration>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>

Таким образом, когда вы создаете с указанным «Dev», эти проекты вместо этого будут создавать свою конфигурацию выпуска, которая имитирует поведение менеджера конфигурации решения (которое я склонен рассматривать как отклонение функции) непосредственно в Сам файл проекта, который является правильным местом для этого.

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

<SolutionItem Include="./PathTo/SomeProject.csproj">
   <AdditionalProperties Condition="'$(Configuration)' == 'Dev'"
      >Configuration=Release</AdditionalProperties>
</SolutionItem>

(Выдержка из книги "Обман MSBuild", трюк № 80)

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

Я не думаю, что это можно сделать с помощью аргумента команды MSBuild.Что вы можете сделать, это использовать Configuration Manager для Visual Studio и для конфигурации решения «Dev» направить проекты, которые не имеют конфигурацию «Dev», к выпуску.конфигурация и некоторые проекты будут встроены в релиз.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...