2017-09-09 4 views
1

J'essaie de lire appsettings.json et je ne veux pas utiliser DI. Je souhaite simplement accéder au fichier. Je suis simple configuration comme suggéré par MS.Impossible de lire appsettings.json sans DI en raison de l'absence de Configuration Builder

using System.IO; 
using Microsoft.Extensions.Configuration; 

class Program 
{ 
    public static IConfigurationRoot Configuration { get; set; } 

    static void Main(string[] args) 
    { 
    IConfigurationBuilder builder = new ConfigurationBuilder() 
     .SetBasePath(Directory.GetCurrentDirectory()) 
     .AddJsonFile("appsettings.json"); 

    Configuration = builder.Build(); 
    } 
} 

Les classes obtiennent de point fort rouge au vert quand je précise la référence à Microsoft.Extensions.Configuration sauf un - la création de l'instance Configuration Builder. Il produit l'erreur suivante.

Erreur CS0246 Le type ou le nom namespace « ConfigurationBuilder » n'a pas pu être trouvée (vous manque une directive à l'aide ou une référence d'assemblage?)

Tous les exemples que j'ai trouvé sont mis en place la de la même façon. Même le docs for Configuration Builder dit qu'il est supopsed d'être là. Je ne sais pas comment procéder. J'utilise .NET Core 2.0 si c'est important. Procédé

+0

c'est bizarre, j'ai créé la même application de console et ce n'est pas un problème. Vous créez une nouvelle application de console .net Core 2.0 vide? – kloarubeek

+0

Avez-vous ajouté le bon paquet? Sans le paquetage Meta ASP.NET Core, vous devez vous-même référencer le contenu. P.S. question est totalement sans rapport avec DI, comme la configuration ne l'a jamais exigé en premier lieu et le nouveau mot-clé a été utilisé, même dans ASP: NET Core – Tseng

+0

@kloarubeek Je ne peux pas l'expliquer, ni l'un ni l'autre. Pouvez-vous confirmer que le paquet 'Microsoft.Extensions.Configuration.Json' est installé? Je suis curieux parce que quand je l'ai installé ([comme ceci] (https://www.nuget.org/packages/Microsoft.Extensions.Configuration.Json/)), comme suggéré dans la réponse ci-dessous, je l'ai eu pour travailler . Veuillez vérifier le * Dependecies/NuGet * dans * Solution Explorer * (il n'apparaît pas dans mon * Explorateur de solutions NuGet * pour une raison quelconque). –

Répondre

5

AddJsonFile est dans le paquet Microsoft.Extensions.Configuration.Json et dans l'espace de noms Microsoft.Extensions.Configuration.

Donc, le paquet Microsoft.Extensions.Configuration.Json doit être ajouté au projet. Une fois tous les paquets restaurés, cela fonctionne parfaitement. Si vous les avez déjà ajoutés, une autre erreur peut bloquer la construction avant que ce point ne soit compilé.

+0

Ahem ... Ma première pensée était "* quel idiot, stfu *" mais pour être modeste, j'ai essayé tes suggestions et devine quoi - ça marche vraiment! Donc, mes excuses et merci à vous. Cependant, maintenant j'ai deux choses qui me déroutent. (a) Je peux voir 'Microsoft.Extensions.Configuration.Json' référencé dans DB-project de ma solution ** mais ** Je ne vois pas la référence dans le projet MVC-API de la même solution. Et l'autre projet utilisait 'ConfigurationBuilder' avant d'avoir ajouté le projet DB. Qu'est-ce qui se passe avec ça ?! (B) Je ne peux pas voir le paquet installé dans le * NuGet Solution Explorer * du tout. Des pensées à ce sujet? –