Cómo configurarBasePath en ConfigurationBuilder en Core 2.0
¿Cómo puedo configurar la ruta base en ConfigurationBuilder en Core 2.0?
Busqué en Google y encontré esta pregunta, esto en Microsoft docs y los documentos 2.0 en línea, pero parecen estar usando una versión de Microsoft.Extension.Configuration
1.0.0 -beta8 .
Yo quiero leer appsettings.json
. ¿Existe una nueva forma de hacer esto en Core 2.0?
using System;
using System.IO;
using Microsoft.Extensions.Configuration;
namespace ConsoleApp2
{
class Program
{
public static IConfigurationRoot Configuration { get; set; }
static void Main(string[] args)
{
var builder = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory()) // <== compile failing here
.AddJsonFile("appsettings.json");
Configuration = builder.Build();
Console.WriteLine(Configuration.GetConnectionString("con"));
Console.WriteLine("Press a key...");
Console.ReadKey();
}
}
}
configuración de aplicaciones.json
{
"ConnectionStrings": {
"con": "connection string"
}
}
ACTUALIZACIÓN:
Además de agregar Microsoft.Extensions.Configuration.FileExtensions como lo indica Set a continuación, también necesitaba agregar Microsoft.Extensions.Configuration.Json para obtener la AddJsonFile
extensión.
El SetBasePath
método de extensión se define en Config.FileExtensions .
Debe agregar una referencia al paquete Microsoft.Extensions.Configuration.FileExtensions .
Para resolverlo AddJsonFile
, agregue una referencia al Microsoft.Extensions.Configuration.Json
paquete.
Estoy desarrollando una aplicación de consola .NET Core 2 con Visual Studio 2017 v15.5. Como otros han señalado, después de agregar Microsoft.Extensions.Configuration necesitaba agregar Microsoft.Extensions.Configuration.Json para que la AddJsonFile()
llamada funcionara. Esto también hizo que la SetBasePath()
llamada funcionara; así que no necesitaba agregar Configuration.FileExtensions . (Mi código se compila y ejecuta con y sin él).
También recibí una llamada AddEnvironmentVariables()
, para la cual necesitaba agregar Configuration.EnvironmentVariables. Mi código es el siguiente:
var builder = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory()) // requires Microsoft.Extensions.Configuration.Json
.AddJsonFile("appsettings.json") // requires Microsoft.Extensions.Configuration.Json
.AddEnvironmentVariables(); // requires Microsoft.Extensions.Configuration.EnvironmentVariables
Configuration = builder.Build();
Curiosamente, la única using
declaración que necesitaba era using Microsoft.Extensions.Configuration
.