Какая задача сборки TFS 2017 применяет преобразования web.config во время сборки TFS?
Некоторая оригинальная информация была изменена, чтобы сделать пост более сосредоточенным на реальной проблеме после того, как она была найдена.
Вот некоторые детали текущей среды. Я перечислил их только потому, что в других постах задавались вопросы, чтобы определить, что было и что не работало в текущей среде:
Upon check-in TFS 2017 successfully builds a web project on the build agent.
A VS 2017 publish profile can manually transform the project properly
The build machine artifact location includes both the transform and profile files
Местоположение артефакта показано ниже:
Я подробно изучил этот вопрос на сайте Microsoft VS, SO и других форумах, но существует так много разных ответов, многие из которых относятся к более старым версиям, я не смог собрать их воедино. В результате у меня есть несколько подвопросов.
1) Могут ли трансформации участвовать как в сборках, так и в релизах?, Я читал, что преобразования применяются во время процесса публикации, а не процесса сборки, и это заставило меня задуматься, возможно ли это сделать во время сборки. Но затем, когда я изучал выпуски, я увидел все те же задачи, которые можно использовать в сборке, что предполагает возможность публикации с преобразованием в сборке или выпуске. Это верно?
2) Требует ли TFS 2017 особой обработки для включения файла преобразования? В некоторых постах рассказывалось о редактировании файла.proj. Я хотел получить подтверждение, прежде чем делать подобные подробные манипуляции, особенно с учетом улучшений в TFS 2017.
Следующая информация - это состояние текущего определения сборки с именем "confPanner-CI". Заштрихованный сценарий PS был успешно использован для загрузки на хост-сайт для тестирования всего процесса, но этого недостаточно для задачи, которая требует применения преобразований:
Полные аргументы MSBuild, которые также создали временное местоположение для сценария powershell:
/p:DeployOnBuild=True /p:DeployDefaultTarget=WebPublish /p:WebPublishMethod=FileSystem /p:DeleteExistingFiles=True /p:publishUrl=c:\ConfPlnrWeb
Если бы мне нужно было добавить задачу для публикации, я бы увидел задачу Publish Build Artifacts:
Но ни одна из настроек, показанных ниже, не относится к преобразованиям:
Суть вопроса в следующем: как настроить сборку таким образом, чтобы при загрузке веб-проекта применялись правильные веб-преобразования?
Обновление: следующее, добавленное после приведенного ниже ответа, привело по крайней мере к одному месту, где преобразования VS могут быть применены во время сборки, и, по-видимому, также к выпуску.
Внутри задачи решения MSBuild Build установите конфигурацию, как показано ниже:
1 ответ
Задача "Публикация артефактов сборки" используется для публикации связанных артефактов (рабочий каталог "a" содержит артефакты (также известные как " отбрасывание "), которые загружаются в конце сборки) в Visual Studio Team Services/TFS или общий файловый ресурс.,
Обычно это должен быть пакет, и его следует использовать в задаче развертывания, такой как Deploy: WinRM - Развертывание веб-приложения IIS или Развертывание службы приложений Azure, чтобы выполнить развертывание.
1) Могут ли трансформации участвовать как в сборках, так и в релизах?
Да, вы также можете сделать это в конвейере сборки с использованием задачи построения развертывания. Вам нужно добавить задачу после задачи публикации артефактов сборки.
2) Требует ли TFS 2017 особой обработки для включения файла преобразования?
Обновить
Переменная BuildConfiguration отличается в TFS 2017, она находится внутри задачи MSBuild! Преобразования теперь применяются в соответствии с настройкой конфигурации задачи MSBuild.
Изменить .proj
Файл - это метод для преобразования. Если вам не нужно изменять преобразование, оно автоматически сделает это во время сборки. Вы также можете использовать некоторые сторонние задачи / расширения для дополнительного преобразования, такие как: Преобразование XDT
Обычно мы разделяем сборку и выпуск для развертывания, потому что это легко настроить несколько сред и легко отладить проблему. Вы определенно можете сделать это только в сборке, но с раздутым процессом. Вы можете обратиться к этому руководству: Создание и развертывание веб-приложений Azure с использованием Team Foundation Server / Services vNext Builds.
Для отдельного решения по сборке и выпуску вы можете взглянуть на этот блог: Использование преобразований web.config и Release Manager - TFS 2017/Team Services edition