Sie können Umgebungsvariablen und die ConfigurationBuilder
Klasse in Ihrem Startup
Konstruktor folgendermaßen verwenden:
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();
}
Anschließend erstellen Sie eine appsettings.xxx.json
Datei für jede benötigte Umgebung, wobei "xxx" der Umgebungsname ist. Beachten Sie, dass Sie alle globalen Konfigurationswerte in Ihre "normale" appsettings.json
Datei einfügen und nur die umgebungsspezifischen Elemente in diese neuen Dateien einfügen können.
Jetzt benötigen Sie nur noch eine Umgebungsvariable ASPNETCORE_ENVIRONMENT
mit einem bestimmten Umgebungswert ("live", "staging", "Production" usw.). Sie können diese Variable in Ihren Projekteinstellungen für Ihre Entwicklungsumgebung angeben, und natürlich müssen Sie sie auch in Ihren Staging- und Produktionsumgebungen festlegen. Wie Sie es dort machen, hängt davon ab, um welche Umgebung es sich handelt.
UPDATE: Ich habe gerade festgestellt, dass Sie die appsettings.xxx.json
basierend auf Ihrer aktuellen Build-Konfiguration auswählen möchten . Dies kann mit meiner vorgeschlagenen Lösung nicht erreicht werden, und ich weiß nicht, ob es einen Weg gibt, dies zu tun. Die Methode "Umgebungsvariable" funktioniert jedoch und könnte genauso gut eine gute Alternative zu Ihrem Ansatz sein.