博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[转]ASP.NET Core 指定环境发布(hosting environment)
阅读量:6438 次
发布时间:2019-06-23

本文共 2350 字,大约阅读时间需要 7 分钟。

本文转自:

ASP.NET Core 应用程序发布命令:

dotnet publish [
] [-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://*:5003 Application started. Press Ctrl+C to shut down.

参考资料:

作者:
出处:
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。 

 

你可能感兴趣的文章
数据库索引
查看>>
用python写网络爬虫 -从零开始 3 编写ID遍历爬虫
查看>>
[cpyhon源代码]dict对象原理学习
查看>>
Testlink使用介绍
查看>>
Robotframework集成jenkins执行用例
查看>>
【SAP BI】BW如何连接SQLSERVER数据库
查看>>
$().each()和$.each()
查看>>
linux下root密码修改方法
查看>>
添加操作。。。
查看>>
Bootstrap框架
查看>>
MSHTML
查看>>
Android学习记录:SQLite数据库、res中raw的文件调用
查看>>
The 'microsoft.jet.oledb.4.0' provider is not registered on the local machin
查看>>
验证视图状态MAC失败的解决办法
查看>>
拦截器,过滤器,监听器原理
查看>>
P1312 Mayan游戏 [模拟][搜索]
查看>>
洛谷P4319 变化的道路
查看>>
LOJ#2353 货币兑换
查看>>
使用装饰器时带括号与不带括号的区别
查看>>
Linux终端乱码的解决办法
查看>>