9

I am using ASP.NET Core RC2 and when I run dotnet run my application always runs in "Production". I am not able to change it to "Development".

I have the following launchSettings.json file:

{
  "iisSettings": {
    "windowsAuthentication": false,
    "anonymousAuthentication": true,
    "iisExpress": {
      "applicationUrl": "http://localhost:26088/",
      "sslPort": 0
    }
  },
  "profiles": {
    "IIS Express": {
      "commandName": "IISExpress",
      "launchBrowser": true,
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      }
    },
    "MVCCoreRc2App": {
      "commandName": "Project",
      "launchBrowser": true,
      "launchUrl": "http://localhost:5000",
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      }
    }
  }
}

I am not sure why dotnet is running the application in "Production" when I am setting "ASPNETCORE_ENVIRONMENT": "Development".

This was working in ASP.NET Core RC1. What am I missing?

Drew Noakes
  • 300,895
  • 165
  • 679
  • 742
Miguel Moura
  • 36,732
  • 85
  • 259
  • 481

3 Answers3

12

launchsettings.json is used when launching from Visual Studio, but not from the command line dotnet.exe.

On the console set the environment variable before calling dotnet run.

set ASPNETCORE_ENVIRONMENT=Development

Tratcher
  • 5,929
  • 34
  • 44
4

If you're using Bash, the appropriate line is:

export ASPNETCORE_ENVIRONMENT=Development

You can set this in your ~/.bashrc file to make it apply whenever you log in.

Drew Noakes
  • 300,895
  • 165
  • 679
  • 742
2

You can even change the environment at the command line when you run your application as in:

dotnet run environment=development
Mally Nag
  • 21
  • 2
  • I like this solution the best, means I don't have to mess with the environment variables, just specify it in the command straight up. – Sander Apr 04 '23 at 12:23