Jak ustawić ścieżkę podstawową w ConfigurationBuilder w Core 2.0.
Przeszukałem google i znalazłem to pytanie, to z Microsoft Docs i 2.0 Docs online, ale wydaje się, że używają wersji Microsoft.Extension.Configuration
od 1.0.0-beta8 .
Chcę czytać appsettings.json
. Czy jest na to nowy sposób w 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"
}
}
AKTUALIZACJA:
Oprócz dodania Microsoft.Extensions.Configuration.FileExtensions, jak wskazano poniżej przez Set , potrzebowałem również dodać Microsoft.Extensions.Configuration.Json, aby uzyskać AddJsonFile
rozszerzenie.
c#
asp.net-core
configuration
.net-core
Padhraic
źródło
źródło
Microsoft.Extensions.Configuration.Json
jest zależnyMicrosoft.Extensions.Configuration.FileExtensions
, więc potrzebujesz tylko tego pierwszego.AddJsonFile("appsettings.json")
metoda nie rozpoznaje Twojego środowiska hostingowego! Użyj.AddJsonFile($"appsettings.{_hostingEnvironment.EnvironmentName}.json")
zamiast tego. : DOdpowiedzi:
Metoda
SetBasePath
rozszerzenia jest zdefiniowana w Config.FileExtensions .Musisz dodać odwołanie do pakietu Microsoft.Extensions.Configuration.FileExtensions .
Aby rozwiązać
AddJsonFile
, dodaj odwołanie doMicrosoft.Extensions.Configuration.Json
pakietu.źródło
Microsoft.Extensions.Configuration.Json
jest zależnyMicrosoft.Extensions.Configuration.FileExtensions
, więc potrzebujesz tylko tego pierwszego.Tworzę aplikację konsoli .NET Core 2 przy użyciu programu Visual Studio 2017 w wersji 15,5. Jak zauważyli inni, po dodaniu Microsoft.Extensions.Configuration musiałem dodać Microsoft.Extensions.Configuration.Json, aby
AddJsonFile()
zadzwonić. To również sprawiło, żeSetBasePath()
połączenie zadziałało; więc nie musiałem dodawać Configuration.FileExtensions . (Mój kod kompiluje się i działa zarówno z nim, jak i bez niego).Miałem też telefon
AddEnvironmentVariables()
, dla którego musiałem dodać Configuration.EnvironmentVariables. Mój kod wygląda następująco:Co ciekawe, jedynym
using
stwierdzeniem, którego potrzebowałem, byłousing Microsoft.Extensions.Configuration
.źródło
Configuration.EnvironmentVariables
==Microsoft.Extensions.Configuration.EnvironmentVariables
. Jest kilka rzeczy o podobnych nazwach.Użyj zarówno „Microsoft.Extensions.Configuration”, jak i „Microsoft.Extensions.Configuration.Json”, aby rozwiązać problem.
https://www.nuget.org/packages/Microsoft.Extensions.Configuration/ https://www.nuget.org/packages/Microsoft.Extensions.Configuration.Json/
Oto przykład „ConnectionFactory”
źródło