剑峰的茅草屋

剑峰的茅草屋
程序猿的掉发日常
  1. 首页
  2. .Net
  3. 正文

.Net Core 多环境 调试发布 配置

2022 年 2 月 10 日 216点热度 0条评论

在frameworks项目里,我们可以通过设置web.config的环境变量,然后再发布时指定具体的变量,去实现生产环境和测试环境的发布,发布之后,每个环境有自己的配置文件,frameworks会更新环境把web.config进行合并,

而在dotnetcore项目里,这种方法不适用了。

 

一.项目配置

  1.添加配置文件

配置文件名称 为 appsettings.xxxx.json 来命名。创建后会自动移动到appsettings.json下面

  2.环境变量设置

仅添加配置文件是无法 在调试或发布 中用到指定的配置的。需要配置环境变量才能正确的使用。

可以分别在2个地方进行配置。

        ①项目属性-调试-添加配置

在左侧添加对应的环境名称,添加后设置环境变量,XXXX为刚设置的appsetting配置别名

 

ASPNETCORE_ENVIRONMENT=XXXXXX

 

  ②launchSettings.json 直接配置

实际上在launchSettings里面同样可以配置。

 

 

二.项目调试

做好配置后调试就非常简单了。

       1.选择对应配置好的 环境变量 运行

    运行后在输出中可以 看到 环境变量已经切换

 

三.发布

         发布可以通过界面发布 ,修改配置环境变量。
         


         也可以通过 命令  进行发布
dotnet pubish -c 环境变量名

 

但是仅仅这样发布还是会出现很多问题,比如配置文件会都打包出来,linux下配置不生效 等等。

配置打包多余的配置文件的解决方法asp.net core在发布时排除配置文件 - 刘小吉 - 博客园 (cnblogs.com)

 

服务器不生效的问题

        1.windows服务器

发布后 实际上windows 服务器是生效的。

可以通过系统环境变量修改当前环境,也可以通过修改web.config 修改当前的环境,如果发布正确会自动切换。

 

        2.Linux服务器

Linux服务器上发布的Web.config 中的 ASPNETCORE_ENVIRONMENT配置不生效。

通过修改Linux上的env 环境变量进行配置,设置服务器统一的环境变量。

 

export ASPNETCORE_ENVIRONMENT=环境名称

 

        3.Docker发布

如果在Linux上多环境,可以使用docker发布来解决。

 

运行容器时只要 加上 -e ASPNETCORE_ENVIRONMENT=环境变量名 即可

 

docker run -d -p 80:80 --name c_name -e ASPNETCORE_ENVIRONMENT=Development i_name

 

 

 

 

--------------------------------------------------------------------------------------

项目启动时候都会显示 当前的环境变量可以在控制台日志中查看并确认。

 

 

 

 

 

标签: 暂无
最后更新:2022 年 2 月 10 日

sunjianfeng

这个人很懒,什么都没留下

点赞
< 上一篇
下一篇 >

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复

COPYRIGHT © 2024 剑峰的茅草屋. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

沪ICP备2021017081号