Почему Visual Studio сообщает мне, что метод AddJsonFile() не определен?
Я разрабатываю проект ASP.NET 5 WebAPI с использованием VS Ultimate 2015 Preview. Я пытаюсь настроить приложение таким образом (номера строк приведены только для справки):
1 using Microsoft.Framework.ConfigurationModel;
2
3 public IConfiguration Configuration { get; private set; }
4
5 public Startup()
6 {
7 Configuration = new Configuration()
8 .AddJsonFile("config.json")
9 .AddEnvironmentVariables();
10 }
Строка 8 выдает ошибку: "Конфигурация" не содержит определения для "AddJsonFile"...
Что случилось?
Ответы
Ответ 1
Вам необходимо включить пакет NuGet Microsoft.Extensions.Configuration.Json
, если вы хотите вызвать метод .AddJsonFile()
.
См.: https://github.com/aspnet/Configuration/tree/dev/src/Microsoft.Framework.ConfigurationModel.Json.
Для дальнейшего чтения, здесь хороший учебник: ASP.NET vNext Moving Parts: IConfiguration.
Ответ 2
Я знаю, что это немного устарело, но я просто столкнулся с этой проблемой при попытке создать мой первый простой проект Asp.net core 1.0. Чтобы использовать метод AddJsonFile, вы должны добавить ссылку на Microsoft.Extensions.Configuration.Json в свой проект через Nuget.
Чтобы установить ссылочный запуск, выполните команду ниже в консоли диспетчера пакетов:
PM > Install-Package Microsoft.Extensions.Configuration.Json
Ответ 3
Если у кого-то еще есть проблемы с этим, Microsoft сделала нарушение изменений в эту часть Framework 16 августа 2015 года. Вы должны импортировать правильные версии зависимостей и переключиться на новый способ создания конфигурации.
Моя конфигурация включает в себя:
{
"webroot": "wwwroot",
"version": "1.0.0-*",
"dependencies": {
"Microsoft.Framework.Runtime": "1.0.0-*",
"Microsoft.AspNet.Server.IIS": "1.0.0-beta7",
"Microsoft.AspNet.Diagnostics": "1.0.0-beta7",
"Microsoft.AspNet.Mvc": "6.0.0-beta7",
"Microsoft.Framework.Configuration": "1.0.0-beta7",
"Microsoft.Framework.Configuration.Json": "1.0.0-*"
},
...
}
Этот код, вдохновленный этот вопрос, может помочь вам:
using System;
using Microsoft.AspNet.Builder;
using Microsoft.Framework.DependencyInjection;
using Messenger.Services;
using Microsoft.Framework.Configuration;
using Microsoft.Dnx.Runtime;
using Microsoft.AspNet.Hosting;
namespace Messenger
{
public class Startup
{
public Startup(IHostingEnvironment env, IApplicationEnvironment appEnv)
{
var configurationBuilder = new ConfigurationBuilder(appEnv.ApplicationBasePath)
.AddJsonFile("config.json")
.AddEnvironmentVariables();
Configuration = configurationBuilder.Build();
}
public IConfiguration Configuration { get; set; }
}
...
}
Надеюсь, что это поможет.
Ответ 4
Под project.json вам нужно будет добавить его в зависимости
dependencies {
"Microsoft.Extensions.Configuration.Json": "1.0.0"
}