Configuración en ASP.NET Core Mediante Argumentos de Línea de Comandos
El proceso de configuración en ASP.NET Core mediante argumentos de línea de comandos, se realiza de forma implícita por medio de proveedores u orígenes de configuración, que en la mayoría de escenarios, es suficiente.
Sin embargo, hay casos estrictamente necesarios en los cuales se requiere permitir el paso de argumentos de línea de comandos de forma explícita, y para realizar esta tarea existe el método de extensión AddCommandLine
perteneciente al proveedor CommandLineConfigurationProvider
, el cual carga la configuración desde pares clave-valor en tiempo de ejecución.
Si se usa la configuración predeterminada, los valores de configuración establecidos mediante argumentos de línea de comandos reemplazan al de los otros proveedores que tengan la misma clave.
Establecimiento de Argumentos
Argumentos de línea de comando de ejemplo:
MongoDbSettings
Host: localhost
Port: 27017
Para establecer los argumentos por línea de comando, hay que tomar en cuenta las siguientes reglas:
-
Los argumentos se deben delimitar por medio de un espacio o los prefijos / o --
Regla 1
dotnet run MongoDbSettings:Host=10 MongoDbSettings:Port=20 dotnet run /MongoDbSettings:Host=10 /MongoDbSettings:Port=20 dotnet run --MongoDbSettings:Host=10 --MongoDbSettings:Port=20
-
El valor de la clave se asigna por medio del signo =
Regla 2
dotnet run MongoDbSettings:Host=10 MongoDbSettings:Port=20
-
Si se requiere asignar el valor de la clave por medio de un espacio, se deben utilizar los prefijos / o --
Regla 3
dotnet run /MongoDbSettings:Host 10 /MongoDbSettings:Port 20 dotnet run --MongoDbSettings:Host 10 --MongoDbSettings:Port 20
-
Si es necesario obviar el valor de la clave, solo se debe usar el signo =
Regla 4
dotnet run MongoDbSettings:Host=10 MongoDbSettings:Port= //Carga todos los argumentos. dotnet run --MongoDbSettings:Host 10 --MongoDbSettings:Port //No carga Port. dotnet run /MongoDbSettings:Host 10 /MongoDbSettings:Port //No carga Port. dotnet run MongoDbSettings:Host 10 MongoDbSettings:Port //No carga ningún argumento.
-
No se pueden usar en el mismo comando el signo = y el espacio:
Regla 5
dotnet run MongoDbSettings:Host=10 MongoDbSettings:Port 20 //No carga Port.
Establecimiento de Argumentos Vía launchSettings.json
Se puede establecer los argumentos por medio de la propiedad commandLineArgs
del archivo launchSettings.json
:
"profiles":
{
"https": {
"commandName": "Project",
"dotnetRunMessages": true,
"launchBrowser": true,
"applicationUrl": "https://localhost:7270;http://localhost:5245",
"commandLineArgs": "MongoDbSettings:Host=10 MongoDbSettings:Port=20",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
},
}
}
O también mediante la interfaz gráfica de Iniciar Perfiles o Perfiles de Lanzamiento (Launch Profiles) de Visual Studio.
Ejemplo
Con el objetivo de asignar solamente valores de configuración por medio de línea de comandos, se removieron o invalidaron todos los orígenes o proveedores que se cargan de forma predeterminada (Archivos appsettings.json
, appsettings.{Environment}.json
, variables de entorno, etc.) por medio del método Clear
.
var builder = WebApplication.CreateBuilder(args);
builder.Configuration.Sources.Clear();
builder.Configuration.AddCommandLine(args);
builder.Services.ConfigureHttpJsonOptions(options =>
{
options.SerializerOptions.WriteIndented = true;
});
var app = builder.Build();
app.MapGet("/", () => app.Configuration.AsEnumerable());
app.Run();
Resultado:
[
{
"key": "MongoDbSettings",
"value": null
},
{
"key": "MongoDbSettings:Port",
"value": "27017"
},
{
"key": "MongoDbSettings:Host",
"value": "localhost"
}
]
Artículos Relacionados
- Configuración en ASP.NET Core Mediante Archivos JSON.
- Configuración en ASP.NET Core Mediante Archivos INI.
- Configuración en ASP.NET Core Mediante Archivos XML.