Как я могу установить базовый путь в ConfigurationBuilder в Core 2.0.
Я гугл и нашел этот вопрос, это из документации Microsoft, и 2.0 документов в Интернете , но они , кажется, используют версию Microsoft.Extension.Configuration
с 1.0.0-beta8 .
Я хочу читать appsettings.json
. Есть ли новый способ сделать это в 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"
}
}
ОБНОВЛЕНИЕ:
В дополнение к добавлению Microsoft.Extensions.Configuration.FileExtensions, как указано ниже в Set, мне также нужно было добавить Microsoft.Extensions.Configuration.Json, чтобы получить AddJsonFile
расширение.
c#
asp.net-core
configuration
.net-core
Padhraic
источник
источник
Microsoft.Extensions.Configuration.Json
имеет зависимостьMicrosoft.Extensions.Configuration.FileExtensions
, так что вам просто нужно первое.AddJsonFile("appsettings.json")
метод не знает о вашей среде хостинга! Используйте.AddJsonFile($"appsettings.{_hostingEnvironment.EnvironmentName}.json")
вместо этого. : DОтветы:
Метод
SetBasePath
расширения определен в Config.FileExtensions .Вам необходимо добавить ссылку на пакет Microsoft.Extensions.Configuration.FileExtensions .
Чтобы решить
AddJsonFile
, добавьте ссылку наMicrosoft.Extensions.Configuration.Json
пакет.источник
Microsoft.Extensions.Configuration.Json
имеет зависимостьMicrosoft.Extensions.Configuration.FileExtensions
, так что вам просто нужно первое.Я занимаюсь разработкой консольного приложения .NET Core 2 с использованием Visual Studio 2017 v15.5. Как уже отмечали другие, после добавления Microsoft.Extensions.Configuration мне нужно было добавить Microsoft.Extensions.Configuration.Json, чтобы заставить
AddJsonFile()
вызов работать. Это также заставилоSetBasePath()
звонок работать; поэтому мне не нужно было добавлять Configuration.FileExtensions . (Мой код компилируется и выполняется как с так и без него.)У меня также был вызов
AddEnvironmentVariables()
, для которого мне нужно было добавить Configuration.EnvironmentVariables. Мой код выглядит следующим образом:Интересно, что единственное
using
утверждение, которое мне было нужно, былоusing Microsoft.Extensions.Configuration
.источник
Configuration.EnvironmentVariables
==Microsoft.Extensions.Configuration.EnvironmentVariables
. Есть несколько вещей с похожими названиями.Используйте «Microsoft.Extensions.Configuration» и «Microsoft.Extensions.Configuration.Json», чтобы решить эту проблему.
https://www.nuget.org/packages/Microsoft.Extensions.Configuration/ https://www.nuget.org/packages/Microsoft.Extensions.Configuration.Json/
Вот пример «ConnectionFactory»
источник