通过 github 操作构建和部署 .NET Core 管道

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

我有一个运行良好的管道,并将其部署到 Windows 服务器。问题是我希望开发环境使用

appsettings.development.json
,生产环境使用
appsettings.json

如何在 CI/CD 管道中修复该问题并告诉如何正确构建项目。

这是github工作流程yml文件

name: Build and Publish to Server

on:
  push:
    branches:
      - develop


jobs:
  build-and-push:
    runs-on: self-hosted
    steps:
      - name: Tst
        run: whoami
      - name: Test Checkout
        uses: actions/checkout@v3
      - name: Build Dotnet application
        run: dotnet build
      - name: Release Dotnet application
        run: |
         stop-webapppool Test
         stop-iissite -Name Test-Confirm: $false
         dotnet publish Test.App.Api -c Release --output C:\Test\development
      - name: Run Dotnet application 
        run: | 
         start-webapppool Test
         start-iissite -Name Test

我想知道如何根据构建隔离应用程序设置。我是不是错过了什么?

.net-core continuous-integration github-actions appsettings
1个回答
0
投票

不确定您是否意识到这一点,但一般方法是

appsettings.json
包含通用设置,无论环境如何。对于特定环境的环境,您应该创建
appsettings.development.json
appsettings.production.json

要使其正常工作,您应该进行配置

public Startup(IHostingEnvironment env)
{
    var builder = new ConfigurationBuilder()
        .SetBasePath(env.ContentRootPath)
        .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
        .AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true)
        .AddEnvironmentVariables();

    Configuration = builder.Build();
}

在开发环境中,您应该将

ASPNETCORE_ENVIRONMENT
设置为
developement
,在生产环境中设置为
production
。基于这个正确的文件将被加载。

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