[c#] Visual Studio에서 AddJsonFile () 메서드가 정의되지 않았다고 알려주는 이유는 무엇입니까?

VS Ultimate 2015 Preview를 사용하여 ASP.NET 5 WebAPI 프로젝트를 개발 중입니다. 이 방식으로 앱을 구성하려고합니다 (줄 번호는 가이드 일뿐입니다).

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’에 대한 정의가 없습니다 …

뭐가 잘못 되었 니?



답변

메서드 Microsoft.Extensions.Configuration.Json를 호출하려면 NuGet 패키지 를 포함해야합니다 .AddJsonFile().

참조 : https://github.com/aspnet/Configuration/tree/dev/src/Microsoft.Framework.ConfigurationModel.Json

자세한 내용은 ASP.NET vNext Moving Parts : IConfiguration 입니다.


답변

나는 이것이 약간 오래되었다는 것을 알고 있지만 첫 번째 Asp.net 코어 1.0 빈 프로젝트를 빌드하려고 할 때 방금이 문제가 발생했습니다. AddJsonFile메서드 를 사용하려면 NugetMicrosoft.Extensions.Configuration.Json 을 통해 프로젝트에 대한 참조를 추가해야합니다 .

참조를 설치하려면 패키지 관리자 콘솔에서 아래 명령을 실행하십시오.

PM> Install-Package Microsoft.Extensions.Configuration.Json


답변

다른 사람이이 문제를 겪고있는 경우 Microsoft는 2015 년 8 월 16 일 프레임 워크의이 부분을 크게 변경 했습니다. 올바른 버전의 종속성을 가져와 새로운 구성 구축 방법으로 전환해야합니다.

내 구성에는 다음이 포함됩니다.

{
  "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; }
    }
...

}

도움이 되었기를 바랍니다.


답변

project.json 아래에서 종속성 내에 추가해야합니다.

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


답변