I use below code to add CommandLine in my .Net-Core 1.2 environment, I can use the command line like dotnet run --urls "http://a.cn.com:5000" --environment &
Use UseConfiguration directly to set url address populated by args:
public static IWebHost BuildWebHost(string[] args)
{
var config = new ConfigurationBuilder().AddCommandLine(args).Build();
return WebHost.CreateDefaultBuilder(args)
.UseConfiguration(config)
.UseStartup<Startup>()
.Build();
}
And we should not add any other code in Program.cs file, cause CreateDefaultBuilder is contain addCommandLine. for more detail, you can see WebHost.cs#L177
This is not exactly true, as linked CreateDefaultBuilder implementation uses ConfigureAppConfiguration method, not UseConfiguration. And there is a difference (from related Github issue):
The
ConfigureAppConfigurationwas intended to configure theIConfigurationin the application services whereasUseConfigurationis intended to configure the settings of theWebHostBuilder. Since the url address is a setting on theWebHostBuilderonlyUseConfigurationwill work here.Note that the WebHostBuilder's configuration is added to the application's configuration but the converse is not true; configuring the application's configuration does not affect the WebHostBuilder's configuration.