【问题标题】:VSTS Deploy IIS App winrm and change appsettings.jsonVSTS 部署 IIS App winrm 并更改 appsettings.json
【发布时间】:2017-07-20 11:03:13
【问题描述】:

我正在使用“部署 IIS 应用程序 winrm”任务在另一台计算机上部署 IIS 应用程序。

此任务部署 zip 文件。在这个 zip 中,有一个 appsettings.json,其中的变量以下划线开头和结尾。

我需要为每个环境替换 appsettings.json 中的值。 我尝试将 json 文件作为“Web 部署参数文件”和“覆盖参数”,但这不起作用。如何更改 appsettings.json?

【问题讨论】:

    标签: json iis azure-devops


    【解决方案1】:

    您无需更改 appsettings.json。核心项目可以根据ASPNETCORE_ENVIRONMENT环境变量从appsettings.[environment].json文件中检索数据。

    例如:

    1. 在项目中添加对应的appsettings.[environment].json文件,如appsettings.Production.jsonappsettings.Development.json,并在每个文件中设置对应的值。
    2. 启动文件中的代码

      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();
                Configuration = builder.Build();
            }
    
    1. 为每台环境机器设置/添加ASPNETCORE_ENVIRONMENT环境变量(只需设置/添加一次)

    有一些文章可以帮助你:

    Configuration in ASP.NET Core

    Working with multiple environments

    如果你还想修改 appsettings.json 文件,你可以解压打包好的文件,然后使用 Token 任务更新文件(例如Replace Tokens),然后压缩这些文件。

    更多信息,可以参考Managing Config for .NET Core Web App Deployments with Tokenizer and ReplaceTokens Tasks

    【讨论】:

    • 使用不同的环境特定文件确实解决了我的问题。谢天谢地,不需要标记化。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多