Além das opções mencionadas acima, existem algumas outras soluções.
1. Modificando o arquivo de projeto (.CsProj)
O MSBuild oferece suporte à EnvironmentName
propriedade que pode ajudar a definir a variável de ambiente certa de acordo com o ambiente que você deseja implantar. O nome do ambiente seria adicionado ao web.config durante a fase de Publicação.
Basta abrir o arquivo de projeto (* .csProj) e adicionar o seguinte 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>
O código acima adicionaria o nome do ambiente como Development
para a configuração de depuração ou se nenhuma configuração for especificada. Para qualquer outra configuração, o nome do ambiente estaria Production
no arquivo web.config gerado. Mais detalhes aqui
2. Adicionando a propriedade EnvironmentName nos perfis de publicação.
Podemos adicionar a <EnvironmentName>
propriedade no perfil de publicação também. Abra o arquivo de perfil de publicação localizado em Properties/PublishProfiles/{profilename.pubxml}
Isso definirá o nome do ambiente em web.config quando o projeto for publicado. Mais detalhes aqui
<PropertyGroup>
<EnvironmentName>Development</EnvironmentName>
</PropertyGroup>
3. Opções de linha de comando usando dotnet publish
Além disso, podemos passar a propriedade EnvironmentName
como uma opção de linha de comando para o dotnet publish
comando. O comando a seguir incluiria a variável de ambiente como Development
no arquivo web.config.
dotnet publish -c Debug -r win-x64 /p:EnvironmentName=Development