VSTS部署IIS App winrm并更改appsettings.json

时间:2017-07-19 22:34:43

标签: json iis azure-devops

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

此任务部署zip文件。在这个zip中有一个appsettings.json,变量在下划线之前和之后。

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

1 个答案:

答案 0 :(得分:1)

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

例如:

  1. 将相应的appsettings.[environment].json个文件添加到项目中,例如appsettings.Production.jsonappsettings.Development.json,并在每个文件中设置相应的值。
  2. 启动文件中的代码
  3.   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_ENVIRONMEN T环境变量(只需设置/添加一次)
    2. 有些文章可以帮助您:

      Configuration in ASP.NET Core

      Working with multiple environments

      如果您仍想更改appsettings.json文件,可以解压缩打包文件,然后使用令牌任务(例如Replace Tokens)更新文件,然后压缩这些文件。

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