Почему он мне все время запускает приложенеи в окружении для Development?
$ dotnet run --environment Production
Building...
info: Microsoft.Hosting.Lifetime[14]
Now listening on: http://[::]:5002
info: Microsoft.Hosting.Lifetime[0]
Application started. Press Ctrl+C to shut down.
info: Microsoft.Hosting.Lifetime[0]
Hosting environment: Development
Как можно заставить dotnet использовать параметр --environment, а не брать его не пойми откуда?
Здравствуйте, LandWarrior, Вы писали:
LW>Почему он мне все время запускает приложенеи в окружении для Development?
LW>$ dotnet run --environment Production
LW>Как можно заставить dotnet использовать параметр --environment, а не брать его не пойми откуда?
Может быть, имеет смысл ознакомиться внимательнее с
документацией:
--launch-profile <NAME>
The name of the launch profile (if any) to use when launching the application. Launch profiles are defined in the launchSettings.json file and are typically called Development, Staging, and Production. For more information, see Working with multiple environments.
LW>Как можно заставить dotnet использовать параметр --environment, а не брать его не пойми откуда?
Проверил у себя. Работает, как ожидается.
> dotnet --version
8.0.300
> dotnet new webapi
The template "ASP.NET Core Web API" was created successfully.
Processing post-creation actions...
Restoring C:\tmp\tmp.csproj:
Determining projects to restore...
Restored C:\tmp\tmp.csproj (in 2.06 sec).
Restore succeeded.
> dotnet run
Building...
info: Microsoft.Hosting.Lifetime[14]
Now listening on: http://localhost:5191
info: Microsoft.Hosting.Lifetime[0]
Application started. Press Ctrl+C to shut down.
info: Microsoft.Hosting.Lifetime[0]
Hosting environment: Development
> dotnet run --environment Production
Building...
info: Microsoft.Hosting.Lifetime[14]
Now listening on: http://localhost:5191
info: Microsoft.Hosting.Lifetime[0]
Application started. Press Ctrl+C to shut down.
info: Microsoft.Hosting.Lifetime[0]
Hosting environment: Production
> set ASPNETCORE_ENVIRONMENT=Production
> dotnet run --no-launch-profile
info: Microsoft.Hosting.Lifetime[14]
Now listening on: http://localhost:5000
info: Microsoft.Hosting.Lifetime[0]
Application started. Press Ctrl+C to shut down.
info: Microsoft.Hosting.Lifetime[0]
Hosting environment: Production
И этот функционал присутствует как минимум с .net 3.0.
Можно задавать через command line (параметр --environment), можно через переменную окружения DOTNET_ENVIRONMENT или ASPNETCORE_ENVIRONMENT, можно через launch profile (но это по сути те же переменные окружения).
А технически это реализовано через провайдеры конфигурации (command line, environment variables, appsettings.<env>.json), которые подключаются при настройке HostBuilder.
Возможно, у тебя какая-то кастомная конфигурация HostBuilder, в которой просто не подключен нужный провайдер для аргументов command line.