Почему 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"...

что не так?.

4 ответов


вам нужно включить Microsoft.Extensions.Configuration.Json пакет NuGet, если вы хотите вызвать .AddJsonFile() метод.

см.: https://github.com/aspnet/Configuration/tree/dev/src/Microsoft.Framework.ConfigurationModel.Json

для дальнейшего чтения, хороший учебник по адресу:http://whereslou.com/2014/05/23/asp-net-vnext-moving-parts-iconfiguration/


Я знаю, что это немного старый, но я просто столкнулся с этой проблемой при попытке создать свой первый Asp.net пустой проект core 1.0. Для использования метода AddJsonFile необходимо добавить ссылку на Microsoft.Увеличение.Конфигурация.В JSON к вашему проекту через Nuget.

для установки ссылки выполните следующую команду в консоли диспетчера пакетов:

PM> установить-пакет Microsoft.Увеличение.Конфигурация.В JSON


в случае, если у кого-то еще были проблемы с этим, Microsoft сделали последние изменения к этой части рамок 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; }
    }
...

}

надеюсь, что это помогает.


под projetc.json-файле вам нужно будет добавить в зависимости

dependencies {
"Microsoft.Extensions.Configuration.Json": "1.0.0"
}