ASP.NET Core environments are specified by setting an environment variable named ASPNETCORE_ENVIRONMENT. Visual Studio 2017 uses a launchSettings.json file and Visual Studio Code uses a launch.json file to pass per-session environment variables for debugging.
This way, one can define different profiles for development, staging and production using Visual Studio 2017 and debug without setting a system-wide environment variable.
I want to know if I can incorporate this environment set by launchSettings.json/launch.json into my build process.
MSBuild (.csproj)
$(ASPNETCORE_ENVIRONMENT)returns empty unless I set a global environment variable. Since building the project is done before launching it, I doubt I can get the environment specified in the launch configuration file.NPM (package.json)
I have multiple scripts defined in my
package.jsonfile and I would love to pass the current environment to my build scripts, although the previous point applies.
I was using DEV/PROD constants defined in the .csproj file and executing the relevant NPM scripts via <Exec Condition="..." Command="..." /> elements before .NET Core. This way compiling the project with the PROD constant made everything ready for publishing.
I wonder what are the current best practices for such things.