I'm trying to build my .NET Core app from the CLI using dotnet build
, but every single time I get this error:
'IConfigurationBuilder' does not contain a definition for 'AddEnvironmentVariables' and no extension method 'AddEnvironmentVariables' accepting a first argument of type 'IConfigurationBuilder' could be found (are you missing a using directive or an assembly reference?)
This is my ConfigureServices
method in Startup.cs
where the problem is happening:
public void ConfigureServices(IServiceCollection services) { var builder = new ConfigurationBuilder() .AddJsonFile("config.json") .AddEnvironmentVariables() .Build(); services.AddEntityFrameworkSqlServer() .AddDbContext<MyContext>(options => options.UseSqlServer(builder["Data:MyContext:ConnectionString"])); services.AddIdentity<ApplicationUser, ApplicationRole>() .AddEntityFrameworkStores<MyContext>() .AddDefaultTokenProviders() .AddOpenIddictCore<Application>(config => config.UseEntityFramework()); services.AddMvc(); services.AddScoped<OpenIddictManager<ApplicationUser, Application>, CustomOpenIddictManager>(); }
Looking at this example I see nothing obviously wrong with my Startup.cs
.
Update My project.json
file:
{ "compilationOptions": { "debugType": "portable", "emitEntryPoint": true, "preserveCompilationContext": true }, "dependencies": { "AspNet.Security.OAuth.Validation": "1.0.0-alpha1-*", "Microsoft.AspNetCore.Authentication.Cookies": "1.0.0-rc2-*", "Microsoft.AspNetCore.Authentication.JwtBearer": "1.0.0-rc2-*", "Microsoft.AspNetCore.Diagnostics": "1.0.0-rc2-*", "Microsoft.AspNetCore.Hosting": "1.0.0-rc2-*", "Microsoft.AspNetCore.Identity.EntityFrameworkCore": "1.0.0-rc2-*", "Microsoft.AspNetCore.IISPlatformHandler": "1.0.0-rc2-*", "Microsoft.AspNetCore.Mvc": "1.0.0-rc2-*", "Microsoft.AspNetCore.Server.Kestrel": "1.0.0-rc2-*", "Microsoft.AspNetCore.StaticFiles": "1.0.0-rc2-*", "Microsoft.EntityFrameworkCore.SqlServer": "1.0.0-rc2-*", "Microsoft.Extensions.Configuration.Json": "1.0.0-rc2-*", "Microsoft.Extensions.Logging.Console": "1.0.0-rc2-*", "Microsoft.Extensions.Logging.Debug": "1.0.0-rc2-*", "OpenIddict.Core": "1.0.0-*", "OpenIddict.EF": "1.0.0-*" }, "frameworks": { "net451": { "frameworkAssemblies": { "System.ComponentModel": { "type": "build" } } }, "netcoreapp1.0": { "dependencies": { "Microsoft.NETCore.App": { "type": "platform", "version": "1.0.0-rc2-*" } }, "imports": [ "dnxcore50", "portable-net451+win8" ] } }, "tools": { "Microsoft.AspNetCore.Server.IISIntegration.Tools": { "version": "1.0.0-rc2-*", "imports": "portable-net45+wp80+win8+wpa81+dnxcore50" } }, "scripts": { "postpublish": "dotnet publish-iis --publish-folder %publish:OutputPath% --framework %publish:FullTargetFramework%" }, "content": [ "wwwroot", "Views", "config.json", "web.config" ], "exclude": [ "wwwroot", "node_modules" ], "publishExclude": [ "**.user", "**.vspscc" ] }
Oct 2018 Update: This problem does not occur when creating a new .NET Core 2.1 app in the latest build of VS 2017. Everything is now at a long-stable version since I asked this question.
Fix: 'ConfigurationBuilder' does not contain a definition for 'SetBasePath' To fix this error, you will have to install a new NuGet package Microsoft. Extensions. Configuration. Json .
You need the Microsoft.Extensions.Configuration namespace in scope to get that extension method. Either fully qualify it, or add this to the top of your file:
using Microsoft.Extensions.Configuration;
You also will need the NuGet reference Microsoft.Extensions.Configuration.EnvironmentVariables.
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