LaunchSettings.json est-il utilisé lors de l'exécution d'applications ASP.NET 5 à partir de la ligne de commande sur Mac?
Je développe une application API Web ASP.NET 5 à l'aide du code Visual Studio sur Mac. J'ai modifié manuellement mon fichier Properties/launchSettings.json
pour définir l'environnement sur Staging
pour tous les profils à l'aide de la variable d'environnement ASPNET_ENV
:
Cependant, lorsque je lance dnx web
dans un terminal Mac pour démarrer l'application, j'obtiens toujours un environnement Production
:
Puis-je utiliser launchSettings.json
pour spécifier des variables d'environnement (et donc des types d'environnement) si j'utilise Visual Studio Code sur Mac? Ou est-ce spécifique à Visual Studio?
ASP.NET 5 docs suggère que launchSettings.json
peut être utilisé pour injecter des variables d’environnement. Cependant, cette SO discussion suggère de leur transmettre des commandes.
LaunchSettings.json est strictement un concept de VS. Dans d'autres cas, vous devrez configurer les variables d'environnement à l'aide des commandes ci-dessous:
Pour une exécution standard en ligne de commande, utilisez:
set ASPNET_ENV=Development
dnx web
Pour PowerShell, utilisez:
$env:ASPNET_ENV='Development'
dnx web
Version plus courte: dnx web ASPNET_ENV=Development
Sur un Mac, à l'aide de Terminal, tapez:
export ASPNETCORE_ENVIRONMENT=Development && dotnet run
Exigences:
- .NET Core (rc2)
- Interface de ligne de commande .NET
En ajoutant à la réponse @Chrysalis, vous pouvez également éviter de "déconner" avec l'environnement actuel en transmettant les variables nécessaires en ligne de commande.
Dans le fichier project.json
, dites que vous avez une commande web-dev
spécifique à l'environnement de développement:
"commands": {
"web-dev": "Microsoft.AspNet.Server.Kestrel
--ASPNET_ENV Development --Hosting:Environment Development
--config hosting.Development.json",
},
où vous pouvez voir comment les deux ASPNET_ENV
, Hosting:Environment
sont définis, ainsi que l'appel d'une configuration hosting.json
spécifique.
NOTE: La commande est divisée en plusieurs lignes uniquement pour des raisons de lisibilité, rejoignez à nouveau avant de coller dans un fichier JSON.