Tu ne le fais pas. ont d'utiliser des variables d'environnement si vous modifiez la façon dont le WebHostBuilder
traite sa configuration. Il s'agit simplement de la valeur par défaut pour dotnet new -t web
. Par exemple, si vous voulez être en mesure de définir l'environnement par défaut comme étant "développement", vous pouvez utiliser les options suivantes au lieu de la production et faciliter le remplacement de l'environnement dans la ligne de commande, vous pouvez le faire en modifiant la commande normale Program.cs
code de ce ...
public static void Main(string[] args) {
var host = new WebHostBuilder()
.UseKestrel()
.UseUrls("http://0.0.0.0:5000")
.UseContentRoot(Directory.GetCurrentDirectory())
.UseIISIntegration()
.UseStartup<Startup>()
.Build();
host.Run();
}
... en quelque chose comme ça ...
private static readonly Dictionary<string, string> defaults =
new Dictionary<string, string> {
{ WebHostDefaults.EnvironmentKey, "development" }
};
public static void Main(string[] args) {
var configuration =
new ConfigurationBuilder()
.AddInMemoryCollection(defaults)
.AddEnvironmentVariables("ASPNETCORE_")
.AddCommandLine(args)
.Build();
var host =
new WebHostBuilder()
.UseConfiguration(configuration)
.UseKestrel()
.UseUrls("http://0.0.0.0:5000")
.UseContentRoot(Directory.GetCurrentDirectory())
.UseIISIntegration()
.UseStartup<Startup>()
.Build();
host.Run();
}
En procédant ainsi, les variables d'environnement continueront de fonctionner, mais vous pouvez les remplacer sur la ligne de commande sans aucune dépendance de tiers, comme suit :
dotnet run environment=development
dotnet run environment=staging
C'est en fait ce que les générateurs de yeoman font .
0 votes
C'est moi, ou aucune des réponses ci-dessous n'a fonctionné !
0 votes
Mm, j'utilisais powershell, je suis passé à l'invite de commande et ça a marché... je me demande pourquoi.