在发布到 IIS 之前转换 MS Web 部署包存档中的appsettings.json (ASP.NET Core)

Transform appsettings.json in MS Web Deploy Package archive before publishing to IIS (ASP.NET Core)

提问人:Andrew 提问时间:8/18/2023 最后编辑:Andrew 更新时间:8/21/2023 访问量:70

问:

我们目前正在将一个大型 ASP.NET WebAPI 应用程序迁移到 ASP.NET Core MVC,这涉及将应用设置默认值从 Web.config 文件迁移到 appsettings.json。我们将使用 IIS 在 Windows Server 上托管。

过去,我们创建了一个 Web 部署包,其中包括一个 SetParameters.xml 文件,用于在部署之前自定义设置(使用转换)。这对我们来说至关重要,因为我们有许多使用不同设置托管应用程序的隔离服务器。

据我所知,在部署时没有内置的方法来转换appsettings.json,因此,如果使用 Web 部署包,我们需要手动提取 zip、自定义appsettings.json(或者 appsettings)。Production.json),然后在调用 MSDeploy 之前重新创建存档。

这一步间接是推动发布到文件夹并压缩,然后在部署时提取存档、编辑appsettings.json并调用 robocopy。此方法的一个优点是对复制的文件进行额外控制,因为默认情况下,MSDeploy 会擦除目标目录中源中不存在的文件(即添加的 appsettings.*.json 或修改后的appsettings.json)。

这似乎是 ASP.NET Core 中缺少的功能,没有明显的替代品。类似于 Azure Pipelines 提供的 JSON 替换会很棒。关键点是转换需要在部署时完成,而不是在构建时完成。有没有人推出自己的解决方案?

ASP.NET-CORE IIS WEBDEPLOY 应用设置

评论


答: 暂无答案