【问题标题】:asp.net core delete appsettings.json for different environments after publish/deployasp.net core 在发布/部署后删除不同环境的 appsettings.json
【发布时间】:2020-04-15 17:23:39
【问题描述】:

Web api 部署在本地 Web 服务器中。我已经通过 azure devops 设置了发布管道。现在正在寻找部署完成后删除 appsettings.env.json 的方法

这样:

appsettings.Development.json和appsettings.Staging.json在应用部署完成后从生产环境的target目录中移除。

【问题讨论】:

    标签: asp.net-core azure-devops asp.net-core-2.0 azure-pipelines azure-pipelines-release-pipeline


    【解决方案1】:

    你可以试试Delete Files task。

    UI界面操作如下,将Delete files from task添加到Deployment group job。

    然后添加你要删除的文件,即appsettings.Development.json和appsettings.Staging.json指定的路径。

    完成后保存并运行。

    【讨论】:

    • 现在可以删除文件了吗?如果没有,你能和我们一起扭转你的进步吗?或者您已经找到其他方法来完成此任务,如果是,您可以与我们分享解决方案吗?
    • 应该在管道的哪个位置调用它?我在 build 步骤之前和之后尝试过,但我的 appsettings.Development.json 仍然存在。这是我的命令- task: DeleteFiles@1 inputs: SourceFolder: Contents: 'appsettings.Development.json'
    • @JulieXu-MSFT 您好,使用像 web.config 这样的 XML 文件转换,转换后配置的所有变体都被删除,只剩下 web.config。 appsettings.json 似乎不是这种情况?框架有没有办法直接删除不必要的 appsettings.env.,json?
    【解决方案2】:

    只要您在 web.config 文件中指定了 Environment 键,其他文件将不会被包含在内。 `

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

    所以即使你不删除其他文件也可以。

    【讨论】:

    • 这不能回答问题。人们通常想删除开发应用程序设置,因为它们可能包含私人信息,所以不删除它们是不好的。
    猜你喜欢
    • 1970-01-01
    • 2017-11-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-23
    • 1970-01-01
    • 2018-03-04
    • 1970-01-01
    相关资源
    最近更新 更多