Переменные среды, которые вы устанавливаете в VSTS, используются только для самого развертывания (т. Е. Всего, что делает VSTS, например, создания вашего приложения или выполнения модульных тестов), но приложение времени выполнения будет использовать те из них, которые находятся на сервере, на котором оно размещено.
Вам нужно будет установить переменные среды на сервере IIS, на котором развертывается VSTS, если вы хотите, чтобы ваше развернутое приложение также использовало их. В документации Microsoft показано, как установить это в зависимости от вашего сервера: Настройка среды
Обновление в ответ на комментарии:
Рекомендуемый способ установки переменных среды - на самом компьютере, т.е. войдите на сервер IIS, на котором вы развертываете, и добавьте туда переменную среды ASPNETCORE_ENVIRONMENT
в system properties -> advanced settings -> environment variables
Если по какой-то причине вы не можете это сделать, вы можете установить их в файле Web.config
(согласно этой документации). Если вы всегда устанавливаете одно и то же значение, вы можете просто поместить то, что вам нужно, в Web.config
вот так
<environmentVariables>
<environmentVariable name="ASPNETCORE_ENVIRONMENT" value="Development" />
</environmentVariables>
Если вам действительно нужны преобразования XML (что, честно говоря, я не уверен, что вы нуждаетесь в этой ситуации - это для изменения файла Web.config
во время развертывания на основе конфигурации сборки. Как уже упоминалось, с ядром asp.net Рекомендуемая настройка конфигурации - это appsettings[.environment].json
файлы, которые автоматически загружаются на основе соответствующей переменной ASPNETCORE_ENVIRONMENT
env на уровне машины), вам нужно фактически определить преобразования в файле преобразования, используя правильный синтаксис, и попросить его заменить части, которые вы хотите изменить. Очевидно, это более сложный вариант.
См .: Как: преобразовать Web.config при развертывании проект веб-приложения для создания файлов преобразования и преобразование Web.config Синтаксис для развертывания веб-проекта с использованием Visual Studio для синтаксиса конфигурации, если вы решите пойти по этому пути.
Что-то вроде этого (в настоящее время невозможно проверить, но это должно дать вам представление - обратите внимание на пространство имен преобразования в файле преобразования и атрибуты xdt:
). Я считаю, что загружаемый файл преобразования соответствует конфигурации сборки, которую вам может потребоваться настроить как часть задачи VSTS:
Web.config
<configuration>
<system.webServer>
<aspNetCore ...>
<environmentVariables>
<environmentVariable name="ASPNETCORE_ENVIRONMENT" value="Development" />
</environmentVariables>
</aspNetCore>
</system.webServer>
</configuration>
Web.Release.config (файл преобразования для конфигурации сборки "Release")
<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="Production" />
</environmentVariables>
</aspNetCore>
</system.webServer>
</configuration>
person
Kirlac
schedule
12.12.2017
xdt:Tranform
неприменимо к узлуenvironmentVariable
? Кстати, Intellisense помечает этот атрибут как ошибку. - person ubi   schedule 14.12.2017