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.
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
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
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With