Outre les options mentionnées ci-dessus, il existe quelques autres solutions.
1. Modification du fichier de projet (.CsProj)
MSBuild prend en charge la EnvironmentName
propriété qui peut vous aider à définir la bonne variable d'environnement selon l'environnement que vous souhaitez déployer. Le nom de l'environnement serait ajouté dans le web.config lors de la phase de publication.
Ouvrez simplement le fichier de projet (* .csProj) et ajoutez le XML suivant.
<!-- 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>
Le code ci-dessus ajouterait le nom de l'environnement comme Development
pour la configuration de débogage ou si aucune configuration n'est spécifiée. Pour toute autre configuration, le nom de l'environnement se trouverait Production
dans le fichier web.config généré. Plus de détails ici
2. Ajout de la propriété EnvironmentName dans les profils de publication.
Nous pouvons également ajouter la <EnvironmentName>
propriété dans le profil de publication. Ouvrez le fichier de profil de publication qui se trouve dans le Properties/PublishProfiles/{profilename.pubxml}
champ Cela définira le nom de l'environnement dans web.config lors de la publication du projet. Plus de détails ici
<PropertyGroup>
<EnvironmentName>Development</EnvironmentName>
</PropertyGroup>
3. Options de ligne de commande utilisant dotnet publish
De plus, nous pouvons transmettre la propriété en EnvironmentName
tant qu'option de ligne de commande à la dotnet publish
commande. La commande suivante inclurait la variable d'environnement comme Development
dans le fichier web.config.
dotnet publish -c Debug -r win-x64 /p:EnvironmentName=Development