加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

如何处理ASP.NET vNext中的调试/发布配置转换

发布时间:2020-12-15 18:46:42 所属栏目:asp.Net 来源:网络整理
导读:在以前版本的ASP.NET中,我们中许多人使用Web.Debug.config / Web.Release.config文件trasformations,看起来像这样: Web.config: connectionStrings add name="AppDB" connectionString="Data Source=(LocalDb)..." //connectionStrings Web.Release.co
在以前版本的ASP.NET中,我们中许多人使用Web.Debug.config / Web.Release.config文件trasformations,看起来像这样:

Web.config:

<connectionStrings>
  <add name="AppDB" connectionString="Data Source=(LocalDb)..." />
</connectionStrings>

Web.Release.config:

<connectionStrings>
  <add name="AppDB" connectionString="Data Source=(ReleaseDb)..."  xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/>
</connectionStrings>

根据ASP.NET vNext tutorial,您仍然可以使用Web.config。但是,config.json似乎是现在按照同一篇文章处理配置的新方法:

config.json

{
    "Data": {
        "DefaultConnection": { 
            "ConnectionString": "Server=(localdb)..."
        }
    }
}

在Startup.cs中:

var configuration = new Configuration();
configuration.AddJsonFile("config.json");
configuration.AddEnvironmentVariables();

所以我想知道这个转移到json的建议的方式来处理config-transofrmation?

解决方法

vNext使用一个新的配置系统,您可以通过代码读取环境变量。因此,在这种情况下,您将检查是否存在适当的环境变量,并通过代码包含相应的JSON。

例如,您可以创建一个qa.json和prod.json。设置一个环境变量,例如在这些环境中指向“qa”和“prod”的“ENV”。然后有条件地添加适当的JSON。

代码可能如下所示:

1)default.json包含所有默认的东西。

2)qa.json和prod.json包含必要的覆盖。

3)由于qa.json和prod.json来了,他们会赢了。如果在default.json和qa.json中有一个“setting1”,它会自动在qa.json中拿起“setting1”

var configuration = new Configuration()
                     .AddJsonFile("default.json")
                     .AddEnvironmentVariables(); 

 var envSpecificJson = configuration.Get("ENV") + ".json";
 configuration.AddJsonFile(envSpecificJson);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读