.net core 5.0 之使用多环境

例如:想区分开发环境和生产环境不同的配置文件(比如说本地测试数据库和正式的数据库等等),这个时候就会根据不同的环境配置不同的文件,也可以用多个startup来分离不同的环境,这里只是分离了配置文件。

当然个人觉得如果在Linux上面部署直接通过docker挂载配置文件会比较好,这里只是记录一下有这种方式可以达到效果

 

1. 引入需要的配置文件(添加新建项=》应用设置文件)

2. Program配置

这里是根据当前的环境的名称动态替换了引用的appsettings..json

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
public static IHostBuilder CreateHostBuilder(string[] args) =>
           Host.CreateDefaultBuilder(args)
               .ConfigureAppConfiguration((hostingContext, config) => {
                    config.Sources.Clear();
                    var env = hostingContext.HostingEnvironment;
                    config.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
                          .AddJsonFile($"appsettings.{env.EnvironmentName}.json",
                                         optional: true, reloadOnChange: true);
 
                    config.AddEnvironmentVariables();
 
                    if (args != null)
                    {
                        config.AddCommandLine(args);
                    }
                   })
               .ConfigureWebHostDefaults(webBuilder =>
               {
                   webBuilder.UseStartup<Startup>();
               });

3. 修改launchSettings.json的ASPNETCORE_ENVIRONMENT来更改调试时对应不同的环境名称,到了这步已经可以满足调试的需求了

 

 

 

4. 如果需要部署在windows上面,修改打包好的webconfig文件,添加环境变量

1
2
3
<environmentVariables>
       <environmentVariable name="ASPNETCORE_ENVIRONMENT" value="test" />
</environmentVariables>

 

 

posted @   Joni是只狗  阅读(390)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具
点击右上角即可分享
微信分享提示