Ich habe gelesen Working with multiple environments und über die Startup Klasse.So konfigurieren Sie Startup-Klasse in Asp.Net Core
Wenn eine ASP.NET Core-Anwendung gestartet wird, wird die Startup-Klasse Bootstrap der Anwendung verwendet, die Konfigurationseinstellungen laden, usw. (mehr über ASP.NET Start erfahren). Wenn jedoch eine Klasse mit dem Namen Startup {EnvironmentName} (z. B. StartupDevelopment) vorhanden ist und die Umgebungsvariable ASPNETCORE_ENVIRONMENT mit diesem Namen übereinstimmt, wird stattdessen die Startup-Klasse verwendet. So könnten Sie Startup für die Entwicklung konfigurieren, aber eine separate StartupProduction, die wäre, wenn die App in Produktion ausgeführt wird. Oder umgekehrt.
So habe ich drei Startklassen StartupDevelopment
, StartupStaging
und StartupProduction
und meine Program.cs
ist so konfiguriert, wie unten
public class Program
{
public static void Main(string[] args)
{
var host = new WebHostBuilder()
.UseKestrel()
.UseContentRoot(Directory.GetCurrentDirectory())
.UseIISIntegration()
.UseStartup<StartupDevelopment>()
.Build();
host.Run();
}
}
Beachten Sie, dass .UseStartup<StartupDevelopment>()
für StartupDevelopment
konfiguriert ist.
Jetzt in Staging
und Production
würde ich ASPNETCORE_ENVIRONMENT
entsprechend setzen. Aber wie Asp.Net-Kern würde StartupStaging
oder StartupProduction
seit seiner hardcoded zu StartupDevelopment
verwenden?
Funktioniert dieses 'Startup {ENVIRONMENT} .cs' Muster noch? Sie haben es aus ihrem Github-Repository entfernt ... https://github.com/aspnet/Docs/commit/8c8771f2b765d5a665a2d3639d60888876e3fda4#diff-1b381ac5136edcd1392a3cce02697697 – Technetium
Anscheinend tut es das! Ich konnte nirgends ein Beispiel dafür finden. Ich lese den Quellcode durch, um meine Antwort zu finden. – Technetium
Ich würde private 'ConfigureDevelopment',' ConfigureStaging' und 'ConfigureProduction' Methoden erstellen und diese in der' Configure' Methode verwenden. –