Vous pouvez utiliser des variables d'environnement et la classe ConfigurationBuilder
dans votre constructeur Startup
comme ceci:
public Startup(IHostingEnvironment env)
{
var builder = new ConfigurationBuilder()
.SetBasePath(env.ContentRootPath)
.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
.AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true)
.AddEnvironmentVariables();
this.configuration = builder.Build();
}
Ensuite, vous créez un fichier appsettings.xxx.json
pour chaque environnement dont vous avez besoin, avec « xxx » étant le nom de l'environnement. Notez que vous pouvez mettre toutes les valeurs de configuration globales dans votre fichier "normal" appsettings.json
et ne placer que les éléments spécifiques à l'environnement dans ces nouveaux fichiers.
Maintenant vous avez seulement besoin d'une variable d'environnement appelée ASPNETCORE_ENVIRONMENT
avec une valeur d'environnement spécifique ("live", "staging", "production", peu importe). Vous pouvez spécifier cette variable dans les paramètres de votre projet pour votre environnement de développement, et bien sûr, vous devez également la définir dans vos environnements de production et de transfert. La façon dont vous le faites dépend du type d'environnement.
MISE À JOUR: Je viens de réaliser que vous voulez choisir le appsettings.xxx.json
en fonction de votre configuration actuelle de construction . Cela ne peut pas être réalisé avec ma solution proposée et je ne sais pas s'il existe un moyen de le faire. La méthode des "variables d'environnement", cependant, fonctionne et pourrait aussi être une bonne alternative à votre approche.
typo dans le '# elsef', F à la fin ne devrait pas être là. (Je ne peux pas éditer puisque c'est seulement 1 caractère) – Nordes
Fixe. Merci!!! – Dmitry