Pourquoi visual studio me dit que la méthode AddJsonFile () n’est pas définie dans la classe de configuration?

Je développe un projet ASP.NET 5 WebAPI à l’aide de VS Ultimate 2015 Preview. J’essaie de configurer l’application de cette manière (les numéros de ligne ne sont que des guides):

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 } 

La ligne 8 me donne une erreur: ‘Configuration’ ne contient pas de définition pour ‘AddJsonFile’ …

Qu’est-ce qui ne va pas?.

Vous devez inclure le package Microsoft.Extensions.Configuration.Json NuGet si vous souhaitez appeler la méthode .AddJsonFile() .

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

Pour en savoir plus, un didacticiel intéressant est disponible à l’ adresse suivante : http://whereslou.com/2014/05/23/asp-net-vnext-moving-parl-iconfiguration/

Je sais que c’est un peu vieux, mais je viens de rencontrer ce problème lorsque j’ai tenté de créer mon premier projet vierge Asp.net Core 1.0. Pour utiliser la méthode AddJsonFile, vous devez append une référence à Microsoft.Extensions.Configuration.Json à votre projet via Nuget.

Pour installer la référence, exécutez la commande ci-dessous dans la console du gestionnaire de packages:

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

Si quelqu’un d’autre avait des problèmes avec cela, Microsoft a apporté des modifications importantes à cette partie de la structure le 16 août 2015. Vous devez importer les versions appropriées des dépendances et passer à la nouvelle méthode de construction de la configuration.

Ma configuration comprend:

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

Ce code, inspiré de cette question, pourrait vous aider:

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

J’espère que ça aide.

Sous projetc.json, vous devrez append des dépendances.

 dependencies { "Microsoft.Extensions.Configuration.Json": "1.0.0" }