dotnet publish [<PROJECT>] [-f|--framework] [-r|--runtime] [-o|--output] [-c|--configuration] [--version-suffix] [-v|--verbosity] [-h|--help]
宣布示例敕令(生成在bin/release/netcoreapp1.1/publish
目录下):
dotnet publish -c release
上面敕令并没有指定EnvironmentName
宣布,什么意思呢?比方 ASP.NET Core 应用顺序中的appsettings.json
设置,测试环境和生产环境设置并不相同(比方数据库衔接字符串),假如用上面的宣布敕令,我们还须要手动拷贝下差别环境的appsettings.json
文件,今后要更改了,还须要再举行宣布更新,很贫苦。
怎样处理上面的题目,很简单,指定下开辟机或许服务器的ASPNETCORE_ENVIRONMENT
环境变量,设置环境变量以后,实行dotnet *.dll
启动顺序的时刻,ASP.NET Core 会自动加载此环境变量对应的appsettings.*.json
文件,比方appsettings.Production.json
。
实在,我们运用 VS 2017 F5 调试项目标时刻,也会默许设置ASPNETCORE_ENVIRONMENT
环境变量的,比方 ASP.NET Core 应用顺序中的launchSettings.json
示例设置:
"profiles": {"IIS Express": { "commandName": "IISExpress", "launchBrowser": true, "launchUrl": "api/values", "environmentVariables": {"ASPNETCORE_ENVIRONMENT": "Development" }},"AspNetCore.Samples": { "commandName": "Project", "launchBrowser": true, "launchUrl": "api/values", "environmentVariables": {"ASPNETCORE_ENVIRONMENT": "Development" }, "applicationUrl": "http://localhost:59522"}}
Startup
示例设置:
public Startup(IHostingEnvironment env) {var builder = new ConfigurationBuilder() .SetBasePath(env.ContentRootPath) .AddJsonFile("appsettings.json", optional: false, reloadOnChange: true) .AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true) .AddEnvironmentVariables(); Configuration = builder.Build(); }
由于上面设置中,ASPNETCORE_ENVIRONMENT
设置的是Development
,我们在运用 VS 2017 F5 调试项目,会加载和运用项面前目今的appsettings.Development.json
设置文件,假如不存在此文件,ASP.NET Core 默许会运用appsettings.json
设置文件。
那我们怎样在服务器上设置ASPNETCORE_ENVIRONMENT
环境变量呢?很简单,敲个敕令就能够了。
1. Windows 服务器设置
敕令行:
>setx ASPNETCORE_ENVIRONMENT "Development"SUCCESS: Specified value was saved.
或许(须要管理员权限)
>setx ASPNETCORE_ENVIRONMENT "Development" /MSUCCESS: Specified value was saved.
PowerShell
敕令:
$Env:ASPNETCORE_ENVIRONMENT = "Prodction"
Windows 设置环境敕令后,须要从新再开一个敕令行dotnet *.dll
启动项目,才会有用。
2. MacOS/Linux 服务器设置
敕令行:
export ASPNETCORE_ENVIRONMENT=development
dotnet *.dll
启动项目标时刻,我们能够看到当前的Hosting environment
,以便搜检是不是准确,示例:
> dotnet AspNetCore.Samples.dllHosting environment: ProdtctionContent root path: C:\Users\yuezh\Desktop\Demo\AspNetCore.SamplesNow listening on: http://*:5003Application started. Press Ctrl+C to shut down.
参考资料:
dotnet-publish
Working with multiple environments
How to set the hosting environment in ASP.NET Core
以上就是ASP.NET Core 应用顺序宣布敕令实例的细致内容,更多请关注ki4网别的相干文章!