Como posso definir o caminho base no ConfigurationBuilder no Core 2.0.
Eu pesquisei e encontrei esta questão, esta de documentos da Microsoft, e os 2,0 docs online, mas eles parecem estar usando uma versão do Microsoft.Extension.Configuration
de 1.0.0-beta8 .
Eu quero ler appsettings.json
. Existe uma nova maneira de fazer isso no 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"
}
}
ATUALIZAÇÃO:
Além de adicionar Microsoft.Extensions.Configuration.FileExtensions, conforme indicado abaixo pelo Set , também era necessário adicionar Microsoft.Extensions.Configuration.Json para obter a AddJsonFile
extensão.
c#
asp.net-core
configuration
.net-core
Padhraic
fonte
fonte
Microsoft.Extensions.Configuration.Json
dependeMicrosoft.Extensions.Configuration.FileExtensions
, então você só precisa do primeiro.AddJsonFile("appsettings.json")
observe que o método não está ciente do seu ambiente de hospedagem! Use em.AddJsonFile($"appsettings.{_hostingEnvironment.EnvironmentName}.json")
vez disso. : DRespostas:
O
SetBasePath
método de extensão é definido em Config.FileExtensions .Você precisa adicionar uma referência ao pacote Microsoft.Extensions.Configuration.FileExtensions .
Para resolver
AddJsonFile
, adicione uma referência aoMicrosoft.Extensions.Configuration.Json
pacote.fonte
Microsoft.Extensions.Configuration.Json
dependeMicrosoft.Extensions.Configuration.FileExtensions
, então você só precisa do primeiro.Estou desenvolvendo um aplicativo de console do .NET Core 2 usando o Visual Studio 2017 v15.5. Como outros observaram, depois de adicionar o Microsoft.Extensions.Configuration, eu precisava adicionar o Microsoft.Extensions.Configuration.Json para que a
AddJsonFile()
chamada funcionasse. Isso também fez aSetBasePath()
ligação funcionar; portanto , não precisei adicionar o Configuration.FileExtensions . (Meu código compila e executa com e sem ele.)Também recebi uma ligação para
AddEnvironmentVariables()
a qual precisava adicionar Configuration.EnvironmentVariables. Meu código é o seguinte:Curiosamente, a única
using
declaração de que eu precisava erausing Microsoft.Extensions.Configuration
.fonte
Configuration.EnvironmentVariables
==Microsoft.Extensions.Configuration.EnvironmentVariables
. Existem várias coisas com nomes semelhantes.Use 'Microsoft.Extensions.Configuration' e 'Microsoft.Extensions.Configuration.Json' para resolver o problema.
https://www.nuget.org/packages/Microsoft.Extensions.Configuration/ https://www.nuget.org/packages/Microsoft.Extensions.Configuration.Json/
Aqui está o exemplo 'ConnectionFactory'
fonte