为什么Visual Studio告诉我未定义AddJsonFile()方法?


87

我正在使用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”的定义...

怎么了?

Answers:


206

Microsoft.Extensions.Configuration.Json如果要调用该.AddJsonFile()方法,则需要包括NuGet包。

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

为了进一步阅读,这里有一个不错的教程:ASP.NET vNext移动部件:IConfiguration


9
由于RC2它现在Microsoft.Extensions.ConfigurationMicrosoft.Extensions.Configuration.Json
克里斯小号

5
要进一步指定Chris添加的注释:从2016年7月22日起,您应该在Project.json文件中添加Microsoft.Extensions.Configuration.Json依赖项,然后在Startup.cs类中添加。using Microsoft.Extensions.Configuration
Tormod Haugene

2
链接断开
WPFUser

四年后,这个答案仍然有用!
MEMark

24

我知道这有点旧,但是在尝试构建我的第一个Asp.net core 1.0空白项目时遇到了这个问题。为了使用该AddJsonFile方法,您必须Microsoft.Extensions.Configuration.Json通过Nuget向您的项目添加引用。

要安装参考,请在软件包管理器控制台中运行以下命令:

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

1

在project.json下,您需要将其添加到依赖项中

dependencies {
"Microsoft.Extensions.Configuration.Json": "1.0.0"
}
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.