Я работал над сценарием сборки для нашего веб-сайта. Веб-сайт представляет собой классическое веб-приложение asp с веб-сайтом asp.net в папке классического веб-приложения asp.
У нас есть разные версии global.asa, которые нужно заменить вместо разных веб-конфигураций. Мы находимся в процессе перехода к среде непрерывной интеграции, поэтому многое из этого для меня все еще в новинку. Я написал сценарий сборки, который выполняет следующие задачи.
- Очищает каталог buildartifacts, если он существует.
- Создает файл решения с любой переданной конфигурацией. В результате каждый проект выводится в отдельной папке.
- Копирует файлы в требуемую структуру папок.
- Пакетирует результат с помощью 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, которые нам нужны в то время, но есть ли способ, возможно, использовать преобразования для выполнения этой задачи?