17
votes

I have an ASP.NET Core 2 WebAPI which will be deployed across the following environments:

INT, QA, STAGE, PRODUCTION environments.

Based on the above, I need to have appsettings.<EnvironmentName>.json file for each environment. From the link : https://docs.microsoft.com/en-us/aspnet/core/fundamentals/environments?view=aspnetcore-2.1, I see that

In case of local development environment, the Environment Variable called ASPNETCORE_ENVIRONMENT is set to Development. In case of the deployment where ASPNETCORE_ENVIRONMENT is not set, the default is Production

I would like to know what are the steps required to take care while preparing the appsettings.<EnvironmentName>.json file for INT, QA and STAGE environment. Do I need to set the environment explicitly for each environment web server:

set ASPNETCORE_ENVIRONMENT=Development.

Can anyone help me to by providing their guidance?

2

2 Answers

17
votes

I might be missing something, but this seems pretty straight-forward. To create the environment-specific setting files, you literally just create them in your project, i.e. create a new file called appsettings.Foo.json in the root of your project. Visual Studio will automatically put it under appsettings.json as a parent in the Solution Explorer.

On the server, yes, you'd need to set the environment you want to run under to ASPNETCORE_ENVIRONMENT. If it's supposed to use appsettings.QA.json, then set it to QA. That's all there is to it.

2
votes

You will have to set the ASPNETCORE_ENVIRONMENT on the server with the configuration you wish to host the app.

Take a look at the sample project provided by Microsoft on Github

Sample Environment project