2016-03-15 18 views
29

Sto provando a impostare il percorso di base dell'applicazione per un'app web .Net che sto costruendo. Continuo a ricevere errori su Configuration builder. Questo è l'errore che ottengo.Impostazione del percorso di base con ConfigurationBuilder

DNX,Version=v4.5.1 error CS1061: 'ConfigurationBuilder' does not contain a definition for 'SetBasePath' and no extension method 'SetBasePath' accepting a first argument of type 'ConfigurationBuilder' could be found (are you missing a using directive or an assembly reference?)

sto assumendo io ottenere lo stesso errore per la mia .AddJsonFile() e .AddEnvironmentVariables(). Ho fatto qualcosa di male? Non ho aggiunto la giusta dipendenza al mio project.json? Ho allegato il mio startup.cs e il mio project.json.

project.json

{ 
"version": "1.0.0-*", 
"compilationOptions": { 
"emitEntryPoint": true 
}, 
"tooling": { 
"defaultNamespace": "TripPlanner" 
}, 

"dependencies": { 
    "Microsoft.AspNet.StaticFiles": "1.0.0-rc1-final", 
    "Microsoft.AspNet.Server.Kestrel": "1.0.0-rc1-final", 
    "Microsoft.AspNet.Mvc": "6.0.0-rc1-final", 
    "Microsoft.AspNet.Mvc.TagHelpers": "6.0.0-rc1-final", 
    "Microsoft.Framework.Configuration": "1.0.0-beta8", 
    "Microsoft.Framework.DependencyInjection": "1.0.0-beta8" 
    //"Microsoft.Extensions.PlatformAbstractions": "1.0.0-beta8" 
}, 

"commands": { 
    "web": "Microsoft.AspNet.Server.Kestrel" 
}, 

"frameworks": { 
    "dnx451": { }, 
    "dnxcore50": { } 
}, 

"exclude": [ 
    "wwwroot", 
    "node_modules" 
], 
"publishExclude": [ 
    "**.user", 
    "**.vspscc" 
] 
} 

startup.cs

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Threading.Tasks; 
using Microsoft.AspNet.Builder; 
using Microsoft.AspNet.Hosting; 
using Microsoft.AspNet.Http; 
using Microsoft.Extensions.DependencyInjection; 
using Microsoft.Extensions.PlatformAbstractions; 
using Microsoft.Framework.Configuration; 
using Microsoft.Framework.DependencyInjection; 
using TripPlanner.Services; 



namespace TripPlanner 
{ 
    public class Startup 
    { 
    public static IConfigurationRoot Configuration; 

    public Startup(IApplicationEnvironment appEnv){ 
     var builder = new ConfigurationBuilder() 
      .SetBasePath(appEnv.ApplicationBasePath) 
      .AddJsonFile("config.json") 
      .AddEnvironmentVariables(); 

     Configuration = builder.Build(); 
    } 

    // This method gets called by the runtime. Use this method to add services to the container. 
    // For more information on how to configure your application, visit http://go.microsoft.com/fwlink/?LinkID=398940 
    public void ConfigureServices(Microsoft.Extensions.DependencyInjection.IServiceCollection services) 
    { 
     services.AddMvc(); 
     #if DEBUG 
     services.AddScoped<IMailService, DebugMailService>(); 
     #else 
     services.AddScoped<IMailService, RealMailService>(); 
     #endif 
    } 

    // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. 
    public void Configure(IApplicationBuilder app) 
    { 
     //app.UseDefaultFiles(); 
     app.UseStaticFiles(); 
     app.UseMvc(config => 
     { 
      config.MapRoute(
       name: "Default", 
       template: "{controller}/{action}/{id?}", 
       defaults: new { controller = "App", action = "Index"} 
      ); 
     }); 

    } 

    // Entry point for the application. 
    public static void Main(string[] args) => Microsoft.AspNet.Hosting.WebApplication.Run<Startup>(args); 
    } 
} 

L'errore è nella funzione public startup destra nella parte superiore della startup.cs.

risposta

64

sono stato in grado di risolvere il problema. Se non l'hai ancora risolto, prova il seguente nel file project.json. Aggiungere il seguente:

"Microsoft.Extensions.Configuration.FileExtensions": "1.0.0-*", 
"Microsoft.Extensions.Configuration.Json": "1.0.0-rc2-final" 

e dovrebbe funzionare

+0

Come farlo in EF Core 2.0 dato che ora non esiste un file project.json? – ATHER

+1

@ATHER: basta aggiungere i due nuget nello stesso modo in cui aggiungi altri nugets. – Dejan

+1

@ATHER 'dotnet aggiungi pacchetto ' dove packageName in questo caso è 'Microsoft.Extensions.Configuration.FileExtensions', o in Visual Studio aggiunge pacchetto nuget –

1

Prova ad aggiungere quanto segue per le dipendenze project.json:

"Microsoft.Extensions.Configuration": "1.0.0-*", 
"Microsoft.Extensions.Configuration.Abstractions": "1.0.0-*", 
+0

Grazie per il suggerimento! Ho provato ad aggiungere entrambi a project.json e poi ho fatto un "dnu restore". Ma sto ancora ricevendo lo stesso errore nel mio Startup.cs. Altre idee? Ho trovato la documentazione per la funzione esatta che sto usando ** [qui] (https://github.com/aspnet/Configuration/blob/1.0.0-beta8/src/Microsoft.Framework.Configuration.FileExtensions/FileConfigurationExtensions. cs) **. 'SetBasePath()' – currymanswag

1

Aggiungere il seguente alla project.json:

"Microsoft.Extensions.Configuration.FileExtensions": "1.0.0-*" 
2

Prova ad aggiungere quanto segue per le dipendenze project.json: "Microsoft.Extensions.Configuration.CommandLine": "1.1.1",

O in project.csproj:
<PackageReference Include="Microsoft.Extensions.Configuration.CommandLine" Version="1.1.1" />

Questo ha funzionato per me

Problemi correlati