Wie kann ich den Basispfad in ConfigurationBuilder in Core 2.0 festlegen?
Ich habe diese Frage gegoogelt und gefunden , dies aus Microsoft-Dokumenten und den 2.0- Dokumenten online, aber sie scheinen eine Version Microsoft.Extension.Configuration
von 1.0.0-beta8 zu verwenden .
Ich möchte lesen appsettings.json
. Gibt es eine neue Möglichkeit, dies in Core 2.0 zu tun?
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"
}
}
UPDATE:
Zusätzlich zum Hinzufügen von Microsoft.Extensions.Configuration.FileExtensions, wie unten von Set angegeben, musste ich auch Microsoft.Extensions.Configuration.Json hinzufügen , um die AddJsonFile
Erweiterung zu erhalten.
c#
asp.net-core
configuration
.net-core
Padhraic
quelle
quelle
Microsoft.Extensions.Configuration.Json
hat eine Abhängigkeit vonMicrosoft.Extensions.Configuration.FileExtensions
, so dass Sie nur die erstere brauchen.AddJsonFile("appsettings.json")
Methode Ihre Hosting-Umgebung nicht kennt! Verwenden Sie.AddJsonFile($"appsettings.{_hostingEnvironment.EnvironmentName}.json")
stattdessen. : DAntworten:
Die
SetBasePath
Erweiterungsmethode ist in Config.FileExtensions definiert .Sie müssen einen Verweis auf das Paket Microsoft.Extensions.Configuration.FileExtensions hinzufügen .
Fügen Sie zum
AddJsonFile
Auflösen einen Verweis auf dasMicrosoft.Extensions.Configuration.Json
Paket hinzu.quelle
Microsoft.Extensions.Configuration.Json
hat eine Abhängigkeit vonMicrosoft.Extensions.Configuration.FileExtensions
, so dass Sie nur die erstere brauchen.Ich entwickle eine .NET Core 2-Konsolen-App mit Visual Studio 2017 v15.5. Wie andere angemerkt haben, musste ich nach dem Hinzufügen von Microsoft.Extensions.Configuration Microsoft.Extensions.Configuration.Json hinzufügen, damit der
AddJsonFile()
Aufruf funktioniert. DadurchSetBasePath()
funktionierte auch der Anruf. Daher musste ich Configuration.FileExtensions nicht hinzufügen . (Mein Code wird mit und ohne kompiliert und ausgeführt.)Ich hatte auch einen Anruf bei
AddEnvironmentVariables()
, für den ich Configuration.EnvironmentVariables hinzufügen musste. Mein Code lautet wie folgt:Interessanterweise ist das einzige
using
war Aussage , die ich braucheusing Microsoft.Extensions.Configuration
.quelle
Configuration.EnvironmentVariables
==Microsoft.Extensions.Configuration.EnvironmentVariables
. Es gibt verschiedene Dinge mit ähnlichen Namen.Verwenden Sie sowohl "Microsoft.Extensions.Configuration" als auch "Microsoft.Extensions.Configuration.Json". Dadurch wird das Problem behoben.
https://www.nuget.org/packages/Microsoft.Extensions.Configuration/ https://www.nuget.org/packages/Microsoft.Extensions.Configuration.Json/
Hier ist das Beispiel 'ConnectionFactory'
quelle