如何根据.Net Core中的环境控制appsettings.json部署

时间:2020-07-16 13:51:45

标签: c# json asp.net-core-3.1 appsettings .net-core-3.1

我有ASP.Net Core 3.1应用程序,并且它具有基于环境的appsettings.json

  • appSettings.UAT.json
  • appSettings.Dev.json
  • appSettings.Prod.json

将应用发布/部署到任何环境(例如 UAT )后,所有appsettings.json都将部署到UAT计算机上。

要求是,如果计算机/环境为UAT,则仅应部署以下appSettings

  • appSettings.json
  • appSettings.UAT.json

&如果env是Prod,则

  • appSettings.json
  • appSettings.Prod.json

我知道另一种方法是从环境变量而不是appSettings.json存储/获取配置,但是现在这对我来说是额外的费用。

谢谢!

2 个答案:

答案 0 :(得分:0)

这可以通过将UAT机器上的ASPNETCORE_ENVIRONMENT变量设置为UAT来控制。

.net核心随附的默认设置是“开发,登台和生产”。

您可以从MS文档https://docs.microsoft.com/en-us/aspnet/core/fundamentals/environments?view=aspnetcore-3.1#set-the-environment

中找到更多信息。

答案 1 :(得分:0)

您可以在IIS中针对您的网站设置"ASPNETCORE_ENVIRONMENT"变量。

打开“ Internet信息服务(IIS)管理器。

  • 转到要在其中设置环境变量的网站。 找到“配置编辑器”。
  • 在配置编辑器的“部分”部分中,选择 在左侧下拉列表中选择system.webServer / aspNetCore ApplicationHost.config。
  • 点击environmentVariables,您将获得当前的环境 变量。添加一个新的环境变量。
  • name将是ASPNETCORE_ENVIRONMENT,而value将是 Development[staging/Prod]。您的情况将是UAT or DEV or Prod
  • 关闭窗口并重新启动网站。

尝试以上内容。