Azure Webjobs app.config 发布转换

Azure Webjobs app.config Release Transformations

我有一个 webjob 和一个 webapp(都是独立的项目),我想为所有环境构建一个工件并在发布步骤而不是构建期间进行转换,因为那样我必须为每个创建一个工件环境。因此,我正在为每个环境创建两个单独的工件(一个用于 webapp,一个用于 webjob)并在发布到应用程序服务期间应用 xml 转换,现在一切正常,除了 webjob 的转换文件放置在webapp 的根目录,这不是我打算做的。我希望将文件放置为 app_data\jobs\continous\myjob\myjob.exe.config

我见过缓慢的 cheeta 和 CTT 转换,但这些不在这个问题的范围内,因为它们只在构建时转换。

您应该在构建期间进行转换,并且您的转换应该作为构建中的标记而不是实际目标值发生。然后在部署中,您可以将令牌值替换为实际的目标环境值。这是打包和部署任何应用程序类型的正确方法。

步骤应该是

  1. 在构建中通过转换标记化配置(使用此 extension task
  2. 打包标记化配置作为构建输出
  3. 在部署时将目标值应用于令牌(使用 marketplace extension 附带的替换令牌任务,它通过自动映射名称将已定义配置的值替换为发布变量值。换句话说,令牌应该是参数名称)

Here is an example done on a windows service。但它也适用于 webjobs(已经测试过),它是正确的解决方案。

您可以使用 Kudu api 到 运行 命令来复制或删除文件。

build/relase期间如何调用kudu api,可以参考: