Окрім вищезазначених варіантів, є ще кілька рішень.
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 публікації
Крім того, ми можемо передати властивість EnvironmentNameкоманді як параметр dotnet publishкомандного рядка. Наступна команда включатиме змінну середовища, як Developmentу файлі web.config.
dotnet publish -c Debug -r win-x64 /p:EnvironmentName=Development