Visual StudioがAddJsonFile()メソッドが定義されていないことを通知するのはなぜですか?


88

VS Ultimate 2015Previewを使用してASP.NET5WebAPIプロジェクトを開発しています。私はこのようにアプリを構成しようとしています(行番号は単なるガイドです):

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」の定義が含まれていません...

なにが問題ですか?

回答:


210

メソッドMicrosoft.Extensions.Configuration.Jsonを呼び出す場合は、NuGetパッケージを含める必要があります.AddJsonFile()

参照:https//github.com/aspnet/Configuration/tree/dev/src/Microsoft.Framework.ConfigurationModel.Json

さらに読むために、ここに素晴らしいチュートリアルがあります:ASP.NET vNext可動部分:IConfiguration


9
RC2以降、現在Microsoft.Extensions.ConfigurationおよびMicrosoft.Extensions.Configuration.Json
Chris S

5
Chrisによって追加されたコメントをさらに指定するには:2016年7月22日の時点で、project.jsonファイルに依存関係Microsoft.Extensions.Configuration.Jsonとして追加してから、Startup.csクラスに追加する必要があります。using Microsoft.Extensions.Configuration
Tormod Haugene 2016

2
リンクが壊れている
WPFUser 2018

この答えは4年後も役に立ちます!
MEMark 2018年

24

私はこれが少し古いことを知っていますが、最初のAsp.netコア1.0ブランクプロジェクトをビルドしようとしたときにこの問題に遭遇しました。このAddJsonFileメソッドを使用するには、NugetMicrosoft.Extensions.Configuration.Jsonを介してプロジェクトへの参照を追加する必要があります。

リファレンスをインストールするには、パッケージマネージャーコンソールで以下のコマンドを実行します。

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

4

他の誰かがこれに問題を抱えている場合に備えて、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; }
    }
...

}

それが役に立てば幸い。


マイクロソフトはそれを再び変更しました-代わりにWBuckの答えを参照してください
r590 2016

1

project.jsonの下で、依存関係内に追加する必要があります

dependencies {
"Microsoft.Extensions.Configuration.Json": "1.0.0"
}
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.