Помимо упомянутых выше вариантов, есть еще несколько решений.
1. Изменение файла проекта (.CsProj).
MSBuild поддерживает EnvironmentNameсвойство, которое может помочь установить правильную переменную среды в соответствии со средой, которую вы хотите развернуть. Имя среды будет добавлено в web.config на этапе публикации.
Просто откройте файл проекта (* .csProj) и добавьте следующий XML.
<!-- Custom Property Group added to add the Environment name during publish
The EnvironmentName property is used during the publish for the Environment variable in web.config
-->
<PropertyGroup Condition=" '$(Configuration)' == '' Or '$(Configuration)' == 'Debug'">
<EnvironmentName>Development</EnvironmentName>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)' != '' AND '$(Configuration)' != 'Debug' ">
<EnvironmentName>Production</EnvironmentName>
</PropertyGroup>
В приведенном выше коде будет добавлено имя среды, как Developmentдля конфигурации отладки, или если конфигурация не указана. Для любой другой конфигурации имя среды будет Productionв сгенерированном файле web.config. Подробнее здесь
2. Добавление свойства EnvironmentName в профили публикации.
Мы также можем добавить <EnvironmentName>свойство в профиль публикации. Откройте файл профиля публикации, который находится в папке. Properties/PublishProfiles/{profilename.pubxml}Это установит имя среды в web.config при публикации проекта. Подробнее здесь
<PropertyGroup>
<EnvironmentName>Development</EnvironmentName>
</PropertyGroup>
3. Параметры командной строки с использованием dotnet publish
Кроме того, мы можем передать свойство EnvironmentNameкак параметр командной строки dotnet publishкоманде. Следующая команда будет включать переменную среды, как Developmentв файле web.config.
dotnet publish -c Debug -r win-x64 /p:EnvironmentName=Development