Tại sao Visual Studio cho tôi biết rằng phương thức AddJsonFile () không được định nghĩa?


87

Tôi đang phát triển dự án ASP.NET 5 WebAPI sử dụng VS Ultimate 2015 Preview. Tôi đang cố định cấu hình ứng dụng theo cách này (số dòng chỉ là hướng dẫn):

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 }

Dòng 8 cho tôi một lỗi: 'Cấu hình' không chứa định nghĩa cho 'AddJsonFile' ...

Chuyện gì thế?

Câu trả lời:


206

Bạn cần bao gồm Microsoft.Extensions.Configuration.Jsongói NuGet nếu bạn muốn gọi .AddJsonFile()phương thức.

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

Để đọc thêm, đây là một hướng dẫn hay: ASP.NET vNext Moving Parts: IConfiguration .


9
Kể từ RC2 nó bây giờ Microsoft.Extensions.ConfigurationMicrosoft.Extensions.Configuration.Json
Chris S

5
Để chỉ rõ thêm nhận xét do Chris thêm vào: Kể từ ngày 22.07.2016, bạn nên thêm Microsoft.Extensions.Configuration.Jsonlàm phụ thuộc trong tệp project.json của mình , rồi thêm using Microsoft.Extensions.Configurationvào lớp Startup.cs của bạn .
Tormod Haugene

2
Liên kết bị phá vỡ
WPFUser

Câu trả lời này vẫn hữu ích bốn năm sau!
MEMark

24

Tôi biết điều này hơi cũ nhưng tôi chỉ gặp phải vấn đề này khi cố gắng xây dựng dự án trống Asp.net core 1.0 đầu tiên của mình. Để sử dụng AddJsonFilephương pháp này, bạn phải thêm tham chiếu đến Microsoft.Extensions.Configuration.Jsondự án của mình thông qua Nuget .

Để cài đặt tham chiếu, hãy chạy lệnh dưới đây trong bảng điều khiển trình quản lý gói:

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

4

Trong trường hợp bất kỳ ai khác gặp sự cố với điều này, Microsoft đã thực hiện các thay đổi đột phá đối với phần này của khung vào ngày 16 tháng 8 năm 2015. Bạn phải nhập đúng phiên bản của các phần phụ thuộc và chuyển sang cách xây dựng cấu hình mới.

Cấu hình của tôi bao gồm:

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

Mã này, lấy cảm hứng từ câu hỏi này có thể giúp bạn:

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

}

Hy vọng nó giúp.


Microsoft đã thay đổi nó một lần nữa - hãy xem câu trả lời của WBuck để thay thế
r590

1

Trong project.json, bạn sẽ cần thêm nó vào trong các gói phụ thuộc

dependencies {
"Microsoft.Extensions.Configuration.Json": "1.0.0"
}
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.