Обновите файл apphostconfig с помощью appcmd - PullRequest
1 голос
/ 16 июня 2020

В конвейере azure DevOps я пытаюсь запустить команду appcmd, чтобы изменить файл applicationhost.config для установки переменной ASPNETCORE_ENVIRONMENT. Он отлично работает следующим образом: appcmd set config -section: system.applicationHost / applicationPools / + "[ name = 'api.hostname. net']. environmentVariables. [name = 'ASPNETCORE_ENVIRONMENT', value = 'api.hostname. net'] "

Проблема в том, что эта команда appcmd работает первый раз, но как только переменная среды уже существует, будет выдано сообщение об ошибке. Можно как-то игнорировать ошибки appcmd? Или добавьте переменную среды, только если она не существует ранее?

Я запускаю команды appcmd, используя задачу azure DevOps IISWebAppManagementOnMachineGroup@0.

1 Ответ

0 голосов
/ 17 июня 2020

Вы можете попробовать использовать опцию XML transformation в задаче веб-развертывания IIS. Преобразование XML поддерживает преобразование файлов конфигурации (файлы * .config) и зависит от среды, в которой будет развернут веб-пакет.

enter image description here

Пример файла преобразования:

<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
  <system.webServer>
    <aspNetCore ...>
      <environmentVariables>
        <environmentVariable xdt:Transform="Replace" xdt:Locator="Match(name)" name="ASPNETCORE_ENVIRONMENT" value="xxx" />
      </environmentVariables>
    </aspNetCore>
  </system.webServer>
</configuration>

Подробнее см. В этом документе .

...