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?

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 .


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

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.


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"
}
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.