web-dev-qa-db-ja.com

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

なにが問題ですか?

63
NetCito

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

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

詳細については、ニースチュートリアルを参照してください。 ASP.NET vNext可動部品:IConfiguration

152
Lonig

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

参照をインストールするには、パッケージマネージャーコンソールで次のコマンドを実行します。

PM>インストールパッケージMicrosoft.Extensions.Configuration.Json

17
WBuck

他の誰かがこれに問題を抱えている場合、マイクロソフトは2015年8月16日にフレームワークのこの部分に breaking changes を作成しました。適切なバージョンの依存関係をインポートし、新しい方法に切り替える必要があります構成の構築。

私の設定には次が含まれます:

{
  "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
John Thow

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

dependencies {
"Microsoft.Extensions.Configuration.Json": "1.0.0"
}
1
D.AhmedRafik