32 votes

ASP.NET Core 1.0 ConfigurationBuilder().AddJsonFile("appsettings.json"); ne pas trouver de fichier

Donc, j'ai enfin trouvé le temps de la recherche à la Base et je suis tombé au premier obstacle. Je suis Pluralsight ASP.NET principes Fondamentaux du cours et je me fais une exception lorsque vous tentez aussi ajouter la appsettings.fichier json à la configuration du générateur.

public Startup()
{
    var builder = new ConfigurationBuilder()
        .AddJsonFile("appsettings.json");

    Configuration = builder.Build();
}

L'erreur que j'obtiens est Le fichier de configuration 'appsettings.json " n'a pas été trouvé et n'est pas une option. Mais j'ai créé directement sous ma solution, tout comme dans la vidéo du parcours.

Toutes les suggestions?

Cheers,

24voto

Zhorian Points 462
public Startup(IHostingEnvironment env)
{
    var builder = new ConfigurationBuilder()
        .SetBasePath(env.ContentRootPath)
        .AddJsonFile("appsettings.json");

    Configuration = builder.Build();
}

Ce qui semble faire l'affaire. Cependant savez pas ce est la bonne façon de le faire. Kinda se sent comme un hack.

23voto

user6655970 Points 181

Vous devez ajouter le package ci-dessous:

    "Microsoft.Extensions.Configuration.Json": "1.0.0"

17voto

Tân Nguyễn Points 4083

D'une autre manière:

appsettings.json:

{
    "greeting": "A configurable hello, to you!"
}

Startup.cs:

using Microsoft.Extensions.Configuration; // for using IConfiguration
using System.IO; // for using Directory

public class Startup
{
    public IConfiguration Configuration { get; set; }

    public Startup()
    {
        var builder = new ConfigurationBuilder();
        builder.SetBasePath(Directory.GetCurrentDirectory());
        builder.AddJsonFile("appsettings.json");

        Configuration = builder.Build();
    }    
}

Dans l' Configure méthode:

app.Run(async (context) =>
{
    // Don't use:
    // string greeting = Configuration["greeting"]; // null

    string greeting = Configuration.GetSection("greeting").Value;
    await context.Response.WriteAsync(greeting)
});

9voto

Dzejms Points 636

Une solution alternative que j'ai trouvé à partir de ce blog fonctionne aussi bien. Il a l'avantage supplémentaire de ne pas avoir à modifier le Démarrage.cs fichier de Démarrage de signature de la méthode.

Dans le buildOptions section ajouter copyToOutput avec le nom du fichier.

{
  "version": "1.0.0-*",
  "buildOptions": {
    "emitEntryPoint": true,
    "copyToOutput": "appsettings.json"
  },
  .... The rest of the file goes here ....

7voto

bhatt ravii Points 352

Pour cela, vous avez besoin de fournir de fournir du chemin de la racine à partir de votre variable d'environnement si vous avez besoin de passer IHostingEnvironment de référence pour fournir du chemin de la racine:

public Startup(IHostingEnvironment env)
{
    var builder = new ConfigurationBuilder()
                          .SetBasePath(env.ContentRootPath)
                          .AddJsonFile("appsettings.json");
    Configuration = builder.Build();
}

et si vous ne pouvez pas trouver AddJsonFile méthode, puis vous devez ajouter using Microsoft.Extensions.Configuration.Json;

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X