Warum teilt mir Visual Studio mit, dass die AddJsonFile () -Methode nicht definiert ist?

87

Ich entwickle ein ASP.NET 5-WebAPI-Projekt mit VS Ultimate 2015 Preview. Ich versuche, die App auf diese Weise zu konfigurieren (Zeilennummern sind nur Anleitungen):

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 }

Zeile 8 gibt mir einen Fehler: 'Konfiguration' enthält keine Definition für 'AddJsonFile' ...

Was ist falsch?

NetCito
quelle

Antworten:

206

Sie müssen das Microsoft.Extensions.Configuration.JsonNuGet-Paket einschließen , wenn Sie die .AddJsonFile()Methode aufrufen möchten .

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

Zum weiteren Lesen finden Sie hier ein nettes Tutorial: ASP.NET vNext Moving Parts: IConfiguration .

Lonig
quelle
9
Seit RC2 ist es jetzt Microsoft.Extensions.ConfigurationundMicrosoft.Extensions.Configuration.Json
Chris S
5
Um den von Chris hinzugefügten Kommentar weiter zu spezifizieren: Ab dem 22.07.2016 sollten Sie Microsoft.Extensions.Configuration.Jsonals Abhängigkeit in Ihre project.json- Datei und dann using Microsoft.Extensions.Configurationin Ihre Startup.cs- Klasse einfügen .
Tormod Haugene
2
Links sind kaputt
WPFUser
Diese Antwort ist auch vier Jahre später noch nützlich!
MEMark
23

Ich weiß, dass dies ein bisschen alt ist, aber ich bin gerade auf dieses Problem gestoßen, als ich versuchte, mein erstes leeres Asp.net Core 1.0-Projekt zu erstellen. Um die AddJsonFileMethode verwenden zu können, müssen Microsoft.Extensions.Configuration.JsonSie über Nuget einen Verweis auf Ihr Projekt hinzufügen .

Führen Sie zum Installieren der Referenz den folgenden Befehl in der Paketmanagerkonsole aus:

PM> Install-Package Microsoft.Extensions.Configuration.Json
WBuck
quelle
4

Falls jemand anderes Probleme damit hat, hat Microsoft am 16. August 2015 wichtige Änderungen an diesem Teil des Frameworks vorgenommen. Sie müssen die richtigen Versionen der Abhängigkeiten importieren und auf die neue Art des Konfigurationsaufbaus umsteigen.

Meine Konfiguration enthält:

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

Dieser Code, der von dieser Frage inspiriert wurde , kann Ihnen helfen:

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

}

Ich hoffe es hilft.

John Thow
quelle
Microsoft hat es erneut geändert - siehe stattdessen
WBucks
1

Unter project.json müssen Sie es innerhalb von Abhängigkeiten hinzufügen

dependencies {
"Microsoft.Extensions.Configuration.Json": "1.0.0"
}
D.AhmedRafik
quelle