MSBuild - Выполнять все преобразования конфигурации одновременно - и преобразовывать другие файлы

Я работал над сценарием сборки для нашего веб-сайта. Веб-сайт представляет собой классическое веб-приложение asp с веб-сайтом asp.net в папке классического веб-приложения asp.

У нас есть разные версии global.asa, которые нужно заменить вместо разных веб-конфигураций. Мы находимся в процессе перехода к среде непрерывной интеграции, поэтому многое из этого для меня все еще в новинку. Я написал сценарий сборки, который выполняет следующие задачи.

  1. Очищает каталог buildartifacts, если он существует.
  2. Создает файл решения с любой переданной конфигурацией. В результате каждый проект выводится в отдельной папке.
  3. Копирует файлы в требуемую структуру папок.
  4. Пакетирует результат с помощью MSDeploy в качестве синхронизации.

Моя первая проблема в том ...

Когда я запускаю задачу MSBuild вот так ...

<MSBuild Projects="$(SolutionFileName)" 
         Properties="Configuration=$(Configuration);OutDir=%(BuildArtifacts.FullPath)" />

Он создает веб-приложение, но не применяет никаких преобразований. Я бы предположил, что MSBuild применит преобразования автоматически. Вместо этого я получаю все 3 файла конфигурации в выходной папке, содержащей сборку. Почему это? Я выполнил поиск здесь и здесь, и они используют отдельную задачу для выполнения трансформация. ЕСЛИ Visual Studio может применять преобразования, а Visual Studio использует MSBuild, я бы подумал, что MSBuild может применять преобразования? Не поддерживает конфигурацию MSBuild? Также, если мне придется делать это отдельно, могу ли я выполнить все преобразования сразу, если есть несколько файлов конфигурации в нескольких папках на каждом уровне структуры папок.

Моя вторая проблема ... будучи классическим веб-приложением asp, мы не можем использовать файлы конфигурации для этой части, потому что ... ну, я не уверен, как классическое веб-приложение asp получит доступ к файлу конфигурации? Итак, у нас есть разные версии файла global.asa, которые обычно заменяются вручную. Я полагаю, что мог бы выполнить какой-то поиск / копирование конкретных файлов asa, которые нам нужны в то время, но есть ли способ, возможно, использовать преобразования для выполнения этой задачи?


person Kevin Donde    schedule 10.04.2012    source источник


Ответы (2)


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

Вы можете вызвать его из сценария MSBuild с помощью задачи Exec.

person Ludwo    schedule 11.04.2012

Что касается проблемы преобразований ... как только мы разобрались с развертыванием с помощью msdeploy, мы обнаружили, что msdeploy фактически выполняет преобразования при развертывании. Он хранит данные преобразования в одном из файлов xml, которые создаются вместе с пакетом.

person Kevin Donde    schedule 16.05.2012