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.