ASP.NET Core 指定环境发布(hosting environment)
ASP.NET Core 应用程序发布命令:
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
原文地址:http://www.cnblogs.com/xishuai/p/asp-net-core-set-hosting-environment-with-publish.html
.NET社区新闻,深度好文,微信中搜索dotNET跨平台或扫描二维码关注
ASP.NET Core 指定环境发布(hosting environment)相关推荐
- [转]ASP.NET Core 指定环境发布(hosting environment)
本文转自:https://www.cnblogs.com/xishuai/p/asp-net-core-set-hosting-environment-with-publish.html ASP.NE ...
- ASP.NET Core配置环境变量和启动设置
在这一部分内容中,我们来讨论ASP.NET Core中的一个新功能:环境变量和启动设置,它将开发过程中的调试和测试变的更加简单.我们只需要简单的修改配置文件,就可以实现开发.预演.生产环境的切换. A ...
- ASP.NET Core quot;完整发布,自带运行时quot; 到jexus
一.阅读前须知 1.使用 jexus整合asp.net core的优点: 1)支持多站点,同一端口可以同时支持任何多的asp.net core应用程序: 2)应用程序启动. ...
- asp开发工具_VSCode搭建完美的asp.net core开发环境,看完这篇就够了
引言 由于.net core的全面跨平台,我也在之前的一篇文章中介绍了如何在深度Deepin操作系统上安装并搭建.net core的开发环境,当时介绍的是安装.net core和使用Rider.net ...
- ASP.NET Core macOS 环境配置 - ASP.NET Core 基础教程 - 简单教程,简单编程
ASP.NET Core macOS 环境配置 - ASP.NET Core 基础教程 - 简单教程,简单编程 原文:ASP.NET Core macOS 环境配置 - ASP.NET Core 基础 ...
- ASP.NET Core Windows 环境配置 - ASP.NET Core 基础教程 - 简单教程,简单编程
原文:ASP.NET Core Windows 环境配置 - ASP.NET Core 基础教程 - 简单教程,简单编程 ASP.NET Core Windows 环境配置 ASP.NET Core ...
- ASP.NET Core 启动方式(Hosting)
之前版本的ASP.NET程序必须依赖IIS来启动,而IIS上会为挂载在其中的ASP.NET 注册一个ISAPI filter.每当http请求过来时,IIS则会启动w3wp的worker proces ...
- 结合Jexus + Kestrel 部署 asp.net core 生产环境
ASP.NET Core 是微软的全新的框架.这一框架的目标 ︰ 跨平台 针对云应用优化 解除 System.Web 的依赖. 获得下面三个方面的优势,你可以把它认为是一个C# 版本的NodeJS: ...
- asp命令执行语句】_2分钟教你使用ASP.NET CORE创建并发布网页应用
>> 点击上方 懒人MES 关注我们 准备 环境: 只需要下载并安装 .NET CORE SDK 3.1(推荐3.1) 微软官方下载地址: https://dotnet.microsoft ...
最新文章
- 深度学习核心技术精讲100篇(五)-通过CTR预估对比深度学习模型(deepfm)梯度提升模型(catboost)
- 深拷贝拯救指针重复释放(浅拷贝)造成的内存泄漏
- 每日一笑 | 老板,黑凤梨真的能吃吗?
- 按功能而不是按层打包课程
- Spring Data Solr教程:配置
- html52D转换3D,CSS3 Transform 2D和3D转换
- linux下expdp定时备份_Linux下定时任务的配置
- verp之增加接近传感器(proximity sensor)
- java实现浏览器ui中的收藏夹_谷歌改进Google Chrome浏览器中的PDF浏览器 带来全新UI...
- 华为京东联手,火拼小米生态链!
- mysql 5.7.18源码包下载_centos 7 下MySQL 5.7.18 源码安装
- bug篇——mysql版本不支持group by分组
- Mac设置鼠标滚轮方向
- 俩分钟认识Sketch的基础功能
- 涤纶电容的作用原理及优点缺点
- 计算机网络与互联网(二)
- 实验1 系统响应及系统稳定性
- 如何用python画数学图案_使用Matplotlib 绘制精美的数学图形例子
- python常用可视化技巧
- “蔚来杯“2022牛客暑期多校训练营10补题
热门文章
- 13.ThreadPoolExecutor线程池之submit方法
- POJ2184 Cow Exhibition(DP:变种01背包)
- WPF中设置了WindowStyle=None后,窗口仍然有边框的解决方法
- CodeForces 486C Palindrome Transformation 贪心+抽象问题本质
- 在zabbix中添加监控主机及Items
- mile for gallon 汽车省油
- 51CTO交流摘录(1):SOC的定义、适用性和组成
- nagios监控mysql主机,nginx,cpu,网卡流量
- 新功能抢先看!Windows 11 2022 版全新 ISO 镜像来了+下载
- 如何评价一个开源项目——协作影响力