Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Setting Base Path using ConfigurationBuilder

I'm trying to set the application base path for a .Net web app I'm building. I keep getting errors on Configuration builder. This is the error I get.

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

I'm assuming I'll get the same error for my .AddJsonFile() and .AddEnvironmentVariables(). Did I do something wrong? Did I not add the right dependency to my project.json? I've enclosed my startup.cs and my 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);   } } 

The error is in the public startup function right near the top of startup.cs.

like image 512
BartimaeusStern Avatar asked Mar 15 '16 02:03

BartimaeusStern


2 Answers

I was able to solve the issue. If you have not yet solved it, try the following in the project.json. Add the following:

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

and it should work

like image 183
Fouad Zakka Avatar answered Sep 28 '22 03:09

Fouad Zakka


Not sure if anyone still runs into this issue but I was able to address this in a dotnetcore console project (netcoreapp2.0) via:

dotnet add package Microsoft.Extensions.Configuration.Json 
like image 24
Bishop Avatar answered Sep 28 '22 03:09

Bishop