2016-03-15 21 views
29

Oluşturduğum bir. Net web uygulaması için uygulama temel yolunu ayarlamaya çalışıyorum. Yapılandırma oluşturucuda hatalar alıyorum. Bu aldığım hatadır.ConfigurationBuilder kullanarak Base Path Ayarı

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?)

ben .AddJsonFile() ve .AddEnvironmentVariables() benim için aynı hatayı alırsınız varsayıyorum. Ben yanlış bir şey mi yaptım? Projeme doğru bağımlılığı eklemedim mi? Startup.cs ve project.json'umu ekledim.

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

hata doğru startup.cs üstüne yakın public startup işlevi bulunmaktadır. ekleyerek project.json bağımlılıkları için aşağıdaki

cevap

64

Sorunu çözmek başardı. Henüz çözmediyseniz, project.json'da aşağıdaki 'u deneyin.

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

ve sizin project.json bağımlılıkları için aşağıdaki ekleyerek

+0

EF Core 2.0'da bunu nasıl yapabilirim, şu an project.json dosyası yok mu? – ATHER

+1

@ATHER: sadece iki nugeti diğer nugetleri eklediğiniz gibi ekleyin. – Dejan

+1

@ATHER 'dotnet pakete ekle ' burada packageName 'Microsoft.Extensions.Configuration.FileExtensions', Visual Studio'da nuget paketini ekleyin –

1

Dene:

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

Öneriniz için teşekkürler! İkisini de projeye ekledim.sonra ve sonra bir "dnu geri yükleme" yaptım. Ama yine de Startup.cs programımda aynı hatayı alıyorum. Başka fikirlerin var mı? Kullanmakta olduğum tam işlevin belgelerini ** gördüm [https://github.com/aspnet/Configuration/blob/1.0.0-beta8/src/Microsoft.Framework.Configuration.FileExtensions/FileConfigurationExtensions. es) **. 'SetBasePath()' – currymanswag

1

sizin project.json ekleyin:

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

deneyin çalışması gerekir: Aşağıdaki ekleyin
<PackageReference Include="Microsoft.Extensions.Configuration.CommandLine" Version="1.1.1" />

Bu: "Microsoft.Extensions.Configuration.CommandLine": "1.1.1",

Ya project.csproj içinde benim için çalıştı.