2017-09-01 5 views
0

Je tente d'obtenir une application de console .NET (Core 2.0) à lire à partir d'un fichier appsetting.json. J'ai un projet WebAPI qui fonctionne très bien avec les éléments suivants:.NET 2.0 Console App - Lecture des paramètres de l'application

services.Configure<WebAppSettings>(Configuration.GetSection("WebAppSettings")); 

Mais dans l'application de la console, il dit:

'ServiceCollection' does not contain a definition for 'Configure' and no extension method 'Configure' accepting a first argument of type 'ServiceCollection' could be found (are you missing a using directive or an assembly reference?) 

J'ai installé les paquetages suivants dans le projet d'application de la console:

<PackageReference Include="Microsoft.Extensions.Configuration" Version="2.0.0" /> 
<PackageReference Include="Microsoft.Extensions.Configuration.FileExtensions" Version="2.0.0" /> 
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="2.0.0" /> 
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="2.0.0" /> 

Voici la classe complète Program.cs:

using System; 
using System.IO; 
using Cam.Checker.Services; 
using Cam.Common; 
using Microsoft.Extensions.Configuration; 
using Microsoft.Extensions.DependencyInjection; 

namespace Cam.Checker 
{ 
    class Program 
    { 
     public static IConfigurationRoot Configuration { get; set; } 
     static void Main(string[] args) 
     { 
      var builder = new ConfigurationBuilder() 
       .SetBasePath(Directory.GetCurrentDirectory()) 
       .AddJsonFile("appsettings.json"); 
       //.AddJsonFile($"appsettings.{env.EnvironmentName}.json", true, true); 

      Configuration = builder.Build(); 

      var services = new ServiceCollection(); 
      services.AddTransient<ICheckerService, CheckerService>(); 
      // app settings 
      services.Configure<WebAppSettings>(Configuration.GetSection("WebAppSettings")); 
      var provider = services.BuildServiceProvider(); 

     } 

} 
} 

Merci!

Répondre

2

Vous devez ajouter le package NuGet Microsoft.Extensions.Options.ConfigurationExtensions pour obtenir la méthode d'extension Configure.

+0

Merci! C'était le problème. – TheWebGuy