Я прочитал Working with multiple environments и о классе Startup.Как настроить класс запуска в Asp.Net Core
При запуске приложения ASP.NET ядра, класс запуска используется для начальной загрузки приложения, загружать свои настройки конфигурации и т.д. (узнать больше о запуске ASP.NET). Однако, если класс существует с именем Startup {EnvironmentName} (например, StartupDevelopment), а переменная окружения ASPNETCORE_ENVIRONMENT соответствует этому имени, то используется вместо этого класс Startup. Таким образом, вы можете настроить Startup для разработки, но иметь отдельный StartupProduction, который был бы , используемый при запуске приложения. Или наоборот.
Так у меня есть 3 запуска классов StartupDevelopment
, StartupStaging
и StartupProduction
и мой Program.cs
сконфигурирован, как показано ниже
public class Program
{
public static void Main(string[] args)
{
var host = new WebHostBuilder()
.UseKestrel()
.UseContentRoot(Directory.GetCurrentDirectory())
.UseIISIntegration()
.UseStartup<StartupDevelopment>()
.Build();
host.Run();
}
}
Обратите внимание, что .UseStartup<StartupDevelopment>()
настроен на StartupDevelopment
.
Сейчас в Staging
и Production
Я бы установил ASPNETCORE_ENVIRONMENT
соответственно. Однако как ядро Asp.Net могло бы использовать StartupStaging
или StartupProduction
, так как его жестко закодировано до StartupDevelopment
?
Этот шаблон 'Startup {ENVIRONMENT} .cs' все еще работает? Они удалили его из своего репозитория github ... https://github.com/aspnet/Docs/commit/8c8771f2b765d5a665a2d3639d60888876e3fda4#diff-1b381ac5136edcd1392a3cce02697697 – Technetium
Видимо, это так! Я не мог найти его нигде. Я прочитал исходный код, чтобы найти свой ответ. – Technetium
Я бы создал частные методы 'ConfigureDevelopment',' ConfigureStaging' и 'ConfigureProduction' и использовал его условно в основном' Configure' методе. –