¿Cómo puedo establecer la ruta base en ConfigurationBuilder en Core 2.0?
He buscado en Google y encontró esta cuestión, este de documentos de Microsoft, y los 2.0 documentos en línea, pero parece que están usando una versión de Microsoft.Extension.Configurationde 1.0.0-Beta8 .
Quiero leer appsettings.json. ¿Hay 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();
        }
    }
}
appsetting.json
{
  "ConnectionStrings": {
    "con": "connection string"
  }
}
ACTUALIZACIÓN: 
Además de agregar Microsoft.Extensions.Configuration.FileExtensions como se indica a continuación mediante Set , también necesitaba agregar Microsoft.Extensions.Configuration.Json para obtener la AddJsonFileextensión.
                    
                        c#
                                asp.net-core
                                configuration
                                .net-core
                                
                    
                    
                        Padhraic
fuente
                
                fuente

Microsoft.Extensions.Configuration.Jsontiene una dependenciaMicrosoft.Extensions.Configuration.FileExtensions, por lo que solo necesita el primero.AddJsonFile("appsettings.json")método no conoce su entorno de alojamiento. Usar en su.AddJsonFile($"appsettings.{_hostingEnvironment.EnvironmentName}.json")lugar. : DRespuestas:
El
SetBasePathmétodo de extensión se define en Config.FileExtensions .Debe agregar una referencia al paquete Microsoft.Extensions.Configuration.FileExtensions .
Para resolver
AddJsonFile, agregue una referencia alMicrosoft.Extensions.Configuration.Jsonpaquete.fuente
Microsoft.Extensions.Configuration.Jsontiene una dependenciaMicrosoft.Extensions.Configuration.FileExtensions, por lo que solo necesita el primero.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 funcione. Esto también hizo que laSetBasePath()llamada funcionara; así que no necesité agregar Configuration.FileExtensions . (Mi código se compila y se ejecuta con y sin él).También tuve una llamada a la
AddEnvironmentVariables()cual necesitaba agregar Configuration.EnvironmentVariables. Mi código es el siguiente:Curiosamente, la única
usingdeclaración que necesitaba erausing Microsoft.Extensions.Configuration.fuente
Configuration.EnvironmentVariables==Microsoft.Extensions.Configuration.EnvironmentVariables. Hay varias cosas con nombres similares.Use 'Microsoft.Extensions.Configuration' y 'Microsoft.Extensions.Configuration.Json' para resolver el problema.
https://www.nuget.org/packages/Microsoft.Extensions.Configuration/ https://www.nuget.org/packages/Microsoft.Extensions.Configuration.Json/
Aquí está la muestra 'ConnectionFactory'
fuente