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

113

我正在使用VS Ultimate 2015预览版开发一个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行出现了错误:'Configuration'不包含名为'AddJsonFile'的定义...

问题出在哪里?

4个回答

268

12
自从 RC2 版本以来,现在使用的是 Microsoft.Extensions.ConfigurationMicrosoft.Extensions.Configuration.Json - Chris S
6
进一步说明Chris所添加的评论:截至2016年7月22日,您应该在project.json文件中添加Microsoft.Extensions.Configuration.Json作为依赖项,然后在Startup.cs类中添加using Microsoft.Extensions.Configuration - Tormod Haugene
2
链接已经失效。 - WPFUser
这个答案四年后仍然有用! - MEMark

33

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

要安装该引用,请在包管理器控制台中运行以下命令:

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

4

如果有人在使用此功能时遇到了问题,需要注意微软在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"
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接