如何使用不同的appsettings.json文件进行不同的部署?

问题描述 投票:0回答:2

我有.NET Core 7 WEB API 项目。在那里,我有 3 个设置文件。更具体地说:

  • 应用程序设置.json
  • appsettings.QA.json
  • appsettings.Production.json
  • appsettings.Development.json。

我想要实现的行为是:

当我运行:

dotnet publish -c QA -o deploy
并在 IIS 上托管应用程序时,它正在使用 appsettings.QA.json 文件。

发生了什么:

应用程序始终使用 appsettings.Production.json 作为默认配置。

我错过了什么吗?

c# .net iis deployment appsettings
2个回答
0
投票

您需要使用您要使用的 env 设置

DOTNET_ENVIRONMENT
环境变量。

SET DOTNET_ENVIRONMENT=QA

欲了解更多信息: 在 ASP.NET Core 中使用多个环境


0
投票
  • 您需要在项目根目录中正确命名配置文件

    • appsettings.json
      (共享配置)
    • appsettings.Development.json
      (特定于开发的配置)
    • appsettings.QA.json
      (QA 特定配置)
    • appsettings.Production.json
      (生产特定配置)
  • 确保在

    launchSettings.json
    内为每个配置文件正确设置
    ASPNETCORE_ENVIRONMENT
    变量。

    示例:

    "profiles": {
        "Development": {
           "commandName": "Project",
           "dotnetRunMessages": "true",
           "launchBrowser": true,
           "applicationUrl": "https://localhost:5001;http://localhost:5000",
           "environmentVariables": {
              "ASPNETCORE_ENVIRONMENT": "Development"
           }
        },
        "QA": {
           "commandName": "Project",
           "dotnetRunMessages": "true",
           "launchBrowser": true,
           "applicationUrl": "https://localhost:5003;http://localhost:5002",
           "environmentVariables": {
              "ASPNETCORE_ENVIRONMENT": "QA"
           }
        },
        "Production": {
           "commandName": "Project",
           "dotnetRunMessages": "true",
           "launchBrowser": true,
           "applicationUrl": "https://localhost:5005;http://localhost:5004",
           "environmentVariables": {
              "ASPNETCORE_ENVIRONMENT": "Production"
           }
        }
    }
    
  • 当您运行

    dotnet publish -c QA -o deploy
    时,它将使用
    QA
    环境。

© www.soinside.com 2019 - 2024. All rights reserved.