Te recomendamos que revises esta respuesta en un ambiente controlado antes de enviarlo a producción, saludos.
Solución:
He añadido capturas de pantalla de un entorno de trabajo porque me ha costado varias horas de I+D.
Primero, agregue un key para usted launch.json expediente.
Vea la siguiente captura de pantalla, he agregado Development como mi entorno.
Luego, en su proyecto, cree un nuevo appsettings.environment.json archivo que incluye el nombre del entorno.
En la siguiente captura de pantalla, busque dos archivos diferentes con los nombres:
appsettings.Development.Json
appSetting.json
Y finalmente, configúralo a tu StartUp clase como esta:
public Startup(IHostingEnvironment env)
var builder = new ConfigurationBuilder()
.SetBasePath(env.ContentRootPath)
.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
.AddJsonFile($"appsettings.env.EnvironmentName.json", optional: true)
.AddEnvironmentVariables();
Configuration = builder.Build();
Y por último, puede ejecutarlo desde la línea de comando de esta manera:
dotnet run --environment "Development"
donde "Development" es el nombre de mi entorno.
Actualización para .NET Core 3.0+
Puedes usar CreateDefaultBuilder que creará y pasará automáticamente un objeto de configuración a su clase de inicio:
WebHost.CreateDefaultBuilder(args).UseStartup();
public class Startup
public Startup(IConfiguration configuration) // automatically injected
Configuration = configuration;
public IConfiguration Configuration get;
/* ... */
CreateDefaultBuilder incluye automáticamente el correspondiente appsettings.Environment.json archivo, así que agregue un archivo appsettings separado para cada entorno:
Luego establezca el ASPNETCORE_ENVIRONMENTVariable ambiental al ejecutar/depurar
Cómo establecer variables de entorno
Dependiendo de su IDE, hay un par de lugares donde los proyectos dotnet tradicionalmente buscan variables de entorno:
Para Estudio visual vaya a Proyecto > Propiedades > Depurar > Variables de entorno:
Para código de estudio visualeditar .vscode/launch.json > env:
Utilizando Configuración de lanzamientoeditar Properties/launchSettings.json > environmentVariables:
Que también se puede seleccionar desde la barra de herramientas en Visual Studio
Utilizando CLI de dotnetuse la sintaxis adecuada para configurar las variables de entorno según su sistema operativo
Nota: cuando se inicia una aplicación con dotnet run, launchSettings.json se lee si está disponible, y environmentVariables la configuración en launchSettings.json anula las variables de entorno.
Cómo Host.CreateDefaultBuilder ¿trabaja?
.NET Core 3.0 agregado Host.CreateDefaultBuilder bajo extensiones de plataforma que proporcionarán una inicialización predeterminada de IConfiguration que proporciona la configuración predeterminada para la aplicación en el siguiente orden:
appsettings.json utilizando el proveedor de configuración JSON.
appsettings.Environment.json utilizando el proveedor de configuración JSON. Por ejemplo:
appsettings.Production.json o
appsettings.Development.json
Secretos de la aplicación cuando la aplicación se ejecuta en el entorno de desarrollo.
Variables de entorno mediante el proveedor de configuración de Variables de entorno.
Argumentos de la línea de comandos mediante el proveedor de configuración de la línea de comandos.
Lecturas adicionales – MS Docs
Inicio de la aplicación en ASP.NET Core
Configuración en ASP.NET Core
Utilice varios entornos en ASP.NET Core
En ASP.NET Core, debería usar Variables de entorno en lugar de la configuración de compilación para appsettings.json adecuado
Haga clic derecho en su proyecto> Propiedades> Depurar> Variables de entorno
ASP.NET Core usará el archivo appsettings.json apropiado:
Ahora puede usar esa variable de entorno de esta manera:
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();
Configuration = builder.Build();
Nota: Si usa la respuesta de @ Dmitry, puede tener problemas, por ejemplo. cuando anulando los valores de appsettings.json en Azure.
Puedes respaldar nuestra tarea escribiendo un comentario y puntuándolo te estamos agradecidos.