Visual Studio neden AddJsonFile () yönteminin tanımlanmadığını söylüyor?


88

VS Ultimate 2015 Preview kullanarak bir ASP.NET 5 WebAPI projesi geliştiriyorum. Uygulamayı bu şekilde yapılandırmaya çalışıyorum (satır numaraları sadece kılavuzdur):

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 }

Satır 8 bana bir hata veriyor: 'Yapılandırma', 'AddJsonFile' için bir tanım içermiyor ...

Yanlış olan ne?

Yanıtlar:


210

Yöntemi Microsoft.Extensions.Configuration.Jsonçağırmak istiyorsanız NuGet paketini eklemeniz gerekir .AddJsonFile().

Bakınız: https://github.com/aspnet/Configuration/tree/dev/src/Microsoft.Framework.ConfigurationModel.Json

Daha fazla okumak için işte güzel bir öğretici: ASP.NET vNext Moving Parts: IConfiguration .


9
RC2'den beri şimdi Microsoft.Extensions.ConfigurationveMicrosoft.Extensions.Configuration.Json
— Chris S

5
22.07.2016 tarihi itibariyle Eklemek gerekir: Daha Chris tarafından eklenen yorumunu belirtmek için Microsoft.Extensions.Configuration.Jsonbir şekilde bağımlılık sizin de project.json dosyası ve sonra eklemek using Microsoft.Extensions.Configurationiçin de Startup.cs sınıfında.
— Tormod Haugene

2
Bağlantılar bozuk
— WPFUser

Bu cevap, dört yıl sonra hala yararlıdır!
— MEMark

24

Bunun biraz eski olduğunu biliyorum ama ilk Asp.net core 1.0 boş projemi oluşturmaya çalışırken bu sorunla karşılaştım. AddJsonFileYöntemi kullanmak için NugetMicrosoft.Extensions.Configuration.Json aracılığıyla projenize bir referans eklemeniz gerekir .

Referansı kurmak için paket yöneticisi konsolunda aşağıdaki komutu çalıştırın:

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

4

Başka birinin bununla ilgili sorun yaşaması durumunda, Microsoft 16 Ağustos 2015 tarihinde çerçevenin bu bölümünde önemli değişiklikler yaptı . Bağımlılıkların doğru sürümlerini içe aktarmalı ve yeni yapılandırma oluşturma yöntemine geçmelisiniz.

Yapılandırmam şunları içerir:

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

Bu sorudan esinlenilen bu kod, size bir şekilde yardımcı olabilir:

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

}

Umarım yardımcı olur.


Microsoft bunu tekrar değiştirdi - bunun yerine
— WBuck'ın

1

Project.json altında, bağımlılıklar içine eklemeniz gerekecek

dependencies {
"Microsoft.Extensions.Configuration.Json": "1.0.0"
}
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.