Преобразование XML DevOps Azure во время выпуска не работает - PullRequest
0 голосов
/ 06 декабря 2018

Я хочу настроить наш конвейер так, чтобы одна сборка могла использоваться для нескольких сред без необходимости создавать отдельные сборки.В соответствии с документами кажется, что это возможно, поскольку в нем говорится:

  • Вы можете использовать эту технику для создания пакета по умолчанию и развертывания его в несколько этапов..

Я назвал свою сцену своей средой (предварительный просмотр) и создал файл web.config для этого файла среды (web.preview.config).Все мои файлы конфигурации среды находятся по тому же пути, что и файл Web.Config.

В журналах указано, что преобразование завершено:

2018-11-17T00: 26: 52.0383966Z [команда]D: \ a_tasks \ AzureRmWebAppDeployment_497d490f-eea7-4f2b-ab94-48d9c1acdcb1 \ 3.4.13 \ ctt \ ctt.exe s: D: \ a_temp \ temp_web_package_06958915987488234 \ Content \ D_M \ s \ Microsoft \ 1 \ \ \ \ \.Xbox.Mvp.Api \ obj \ Preview \ Package \ PackageTmp \ bin \ Web.config t: D: \ a_temp \ temp_web_package_06958915987488234 \ Content \ D_C \ a \ 1 \ s \ Microsoft.Xbox.Mvp \ Microsoft.Xbox.Mvp.Api \ obj \ Preview \ Package \ PackageTmp \ bin \ Web.Release.config d: D: \ a_temp \ temp_web_package_06958915987488234 \ Content \ D_C \ a \ 1 \ s \ Microsoft.Xbox.Mvp \ Microsoft.Xbox.Mvp.Api\ obj \ Preview \ Package \ PackageTmp \ bin \ Web.config pw i 2018-11-17T00: 26: 52.4335280Z [команда] D: \ a_tasks \ AzureRmWebAppDeployment_497d490f-eea7-4f2b-ab94-48d9c1acdcb1 \ 3.4.13 \ cttctt.exe s: D: \ a_temp \ temp_web_package_06958915987488234 \ Content \ D_C \ a \ 1 \ s \ Microsoft.Xbox.Mvp \ Microsoft.Xbox.Mvp.Api \ obj \ Preview \ Package \ PackageTmp \ bin \ Web.config t: D: \ a_temp \ temp_web_package_06958915987488234 \ Content \ D_C \ a \ 1 \ s \ Microsoft.Xbox.Mvp \ Microsoft.Xbox.Mvp.Api \ obj \ Preview \ Package \ PackageTmp \bin \ Web.Preview.config d: D: \ a_temp \ temp_web_package_06958915987488234 \ Content \ D_C \ a \ 1 \ s \ Microsoft.Xbox.Mvp \ Microsoft.Xbox.Mvp.Api \ obj \ Preview \ Package \ PackageTmp \ bin \Web.config pw i 2018-11-17T00: 26: 52.5443873Z Преобразования XML успешно применены

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

Когда я проводил исследования, я обнаружил, что это ссылка :

Web.config преобразуется в процессе сборки, если вы сгенерируете пакет развертывания из «Build», а затем развернете его в «Release», то вы не сможете преобразоватьэто до развертывания.

Но в документе сказано, что я могу использовать один пакет по умолчанию для нескольких этапов ... Означает ли это, что мне нужно создавать отдельные сборки для каждой среды?Разве преобразование XML - это не то, на что мне следует обращать внимание в сценарии, который я хочу решить?

Заранее спасибо!

++ Редактировать:

Настройки релиза: ReleaseSettings

Выпуск шагов (думаю? Iу вас есть сильное чувство, что это то, что вы ищете ...): ReleaseSteps

Ответы [ 3 ]

0 голосов
/ 31 марта 2019

Я только что заработал, чтобы у меня была одна сборка с развертыванием в нескольких средах.Это то, что я сделал.

В коде я установил для каждого свойства Web..config значение Build Action = "Content".Я также установил все мои копировать в выходной каталог = "Копировать всегда".Я также выгрузил проект и отредактировал файл csproj, затем удалил строки Web.config.Это сбрасывает все ваши web.configs в корень (без вложенности файлов).

В сборке я установил переменную конвейера BuildConfiguration = "Release".В моем проекте нет Web.Release.config.

В этом выпуске я назвал этап развертывания после среды (в моем случае, «Разработка», «Подготовка» и «Производство»).На всех этапах в задаче развертывания Azure я установил флажок преобразования XML.

В Azure я установил для ASPNETCORE_ENVIRONMENT присвоение имен промежуточной среде, в моем случае - «Разработка», «Подготовка» и «Производство»).

0 голосов
/ 16 апреля 2019

У меня это тоже работает.Моя проблема была на самом деле на уровне решения Visual Studio.У меня проект MVC указывал на конфигурацию, отличную от других.Так что всегда перепроверяйте конфиги!

0 голосов
/ 19 декабря 2018

1) Убедитесь, что вы преобразовываете работы.Проверьте это здесь.

2) Убедитесь, что в вашем проекте VS вы включаете файл преобразования, Web.Preview.config и копируете в выходной каталог.

3Отключите config config во время сборки, вам просто нужно добавить аргумент / p: TransformWebConfigEnabled = False в разделе Аргументы MSBuild вашей задачи Build.Вам также необходимо добавить / p: AutoParameterizationWebConfigConnectionStrings = False, если вы хотите обновить строку подключения во время выпуска.Это будет использовать Web.Preview.config для «преобразования» web.config.

4) Дважды проверьте, что в вашем выпуске для задачи развертывания IIS Web App в разделе «Преобразования файлов и параметры замены переменных» проверена трансформация XML.

...