Además de las opciones mencionadas anteriormente, hay un par de otras soluciones.
1. Modificar el archivo de proyecto (.CsProj).
MSBuild admite la EnvironmentNamepropiedad, que puede ayudar a establecer la variable de entorno correcta según el entorno que desea implementar. El nombre del entorno se agregaría en web.config durante la fase de publicación.
Simplemente abra el archivo del proyecto (* .csProj) y agregue el siguiente 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>
El código anterior agregaría el nombre del entorno como Developmentpara la configuración de depuración o si no se especifica ninguna configuración. Para cualquier otra configuración, el nombre del entorno estaría Productionen el archivo web.config generado. Más detalles aquí
2. Agregar la propiedad EnvironmentName en los perfiles de publicación.
También podemos agregar la <EnvironmentName>propiedad en el perfil de publicación. Abra el archivo de perfil de publicación que se encuentra en. Properties/PublishProfiles/{profilename.pubxml}Esto establecerá el nombre del entorno en web.config cuando se publique el proyecto. Más detalles aquí
<PropertyGroup>
<EnvironmentName>Development</EnvironmentName>
</PropertyGroup>
3. Opciones de la línea de comandos con dotnet publish
Además, podemos pasar la propiedad EnvironmentNamecomo una opción de línea de comando al dotnet publishcomando. El siguiente comando incluiría la variable de entorno como Developmenten el archivo web.config.
dotnet publish -c Debug -r win-x64 /p:EnvironmentName=Development