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)相关推荐

  1. [转]ASP.NET Core 指定环境发布(hosting environment)

    本文转自:https://www.cnblogs.com/xishuai/p/asp-net-core-set-hosting-environment-with-publish.html ASP.NE ...

  2. ASP.NET Core配置环境变量和启动设置

    在这一部分内容中,我们来讨论ASP.NET Core中的一个新功能:环境变量和启动设置,它将开发过程中的调试和测试变的更加简单.我们只需要简单的修改配置文件,就可以实现开发.预演.生产环境的切换. A ...

  3. ASP.NET Core quot;完整发布,自带运行时quot; 到jexus

    一.阅读前须知   1.使用 jexus整合asp.net core的优点:       1)支持多站点,同一端口可以同时支持任何多的asp.net core应用程序:       2)应用程序启动. ...

  4. asp开发工具_VSCode搭建完美的asp.net core开发环境,看完这篇就够了

    引言 由于.net core的全面跨平台,我也在之前的一篇文章中介绍了如何在深度Deepin操作系统上安装并搭建.net core的开发环境,当时介绍的是安装.net core和使用Rider.net ...

  5. ASP.NET Core macOS 环境配置 - ASP.NET Core 基础教程 - 简单教程,简单编程

    ASP.NET Core macOS 环境配置 - ASP.NET Core 基础教程 - 简单教程,简单编程 原文:ASP.NET Core macOS 环境配置 - ASP.NET Core 基础 ...

  6. ASP.NET Core Windows 环境配置 - ASP.NET Core 基础教程 - 简单教程,简单编程

    原文:ASP.NET Core Windows 环境配置 - ASP.NET Core 基础教程 - 简单教程,简单编程 ASP.NET Core Windows 环境配置 ASP.NET Core ...

  7. ASP.NET Core 启动方式(Hosting)

    之前版本的ASP.NET程序必须依赖IIS来启动,而IIS上会为挂载在其中的ASP.NET 注册一个ISAPI filter.每当http请求过来时,IIS则会启动w3wp的worker proces ...

  8. 结合Jexus + Kestrel 部署 asp.net core 生产环境

    ASP.NET Core 是微软的全新的框架.这一框架的目标 ︰ 跨平台 针对云应用优化 解除 System.Web 的依赖. 获得下面三个方面的优势,你可以把它认为是一个C# 版本的NodeJS: ...

  9. asp命令执行语句】_2分钟教你使用ASP.NET CORE创建并发布网页应用

    >> 点击上方 懒人MES 关注我们 准备 环境: 只需要下载并安装 .NET CORE SDK 3.1(推荐3.1) 微软官方下载地址: https://dotnet.microsoft ...

最新文章

  1. 深度学习核心技术精讲100篇(五)-通过CTR预估对比深度学习模型(deepfm)梯度提升模型(catboost)
  2. 深拷贝拯救指针重复释放(浅拷贝)造成的内存泄漏
  3. 每日一笑 | 老板,黑凤梨真的能吃吗?
  4. 按功能而不是按层打包课程
  5. Spring Data Solr教程:配置
  6. html52D转换3D,CSS3 Transform 2D和3D转换
  7. linux下expdp定时备份_Linux下定时任务的配置
  8. verp之增加接近传感器(proximity sensor)
  9. java实现浏览器ui中的收藏夹_谷歌改进Google Chrome浏览器中的PDF浏览器 带来全新UI...
  10. 华为京东联手,火拼小米生态链!
  11. mysql 5.7.18源码包下载_centos 7 下MySQL 5.7.18 源码安装
  12. bug篇——mysql版本不支持group by分组
  13. Mac设置鼠标滚轮方向
  14. 俩分钟认识Sketch的基础功能
  15. 涤纶电容的作用原理及优点缺点
  16. 计算机网络与互联网(二)
  17. 实验1 系统响应及系统稳定性
  18. 如何用python画数学图案_使用Matplotlib 绘制精美的数学图形例子
  19. python常用可视化技巧
  20. “蔚来杯“2022牛客暑期多校训练营10补题

热门文章

  1. 13.ThreadPoolExecutor线程池之submit方法
  2. POJ2184 Cow Exhibition(DP:变种01背包)
  3. WPF中设置了WindowStyle=None后,窗口仍然有边框的解决方法
  4. CodeForces 486C Palindrome Transformation 贪心+抽象问题本质
  5. 在zabbix中添加监控主机及Items
  6. mile for gallon 汽车省油
  7. 51CTO交流摘录(1):SOC的定义、适用性和组成
  8. nagios监控mysql主机,nginx,cpu,网卡流量
  9. 新功能抢先看!Windows 11 2022 版全新 ISO 镜像来了+下载
  10. 如何评价一个开源项目——协作影响力