Azure Webjobs app.config版本转换

时间:2018-07-18 15:13:45

标签: azure-devops azure-web-sites azure-webjobs azure-pipelines azure-pipelines-release-pipeline

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

我已经看到了缓慢的cheeta和CTT转换,但是它们仅在构建时才转换,因此超出了这个问题的范围。

enter image description here

2 个答案:

答案 0 :(得分:1)

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

有关在构建/发布期间如何调用kudu api的更多信息,您可以参考:How to access Kudu in Azure using power shell script

答案 1 :(得分:0)

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

步骤应为

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

Here is an example done on a windows service。但这也适用于webjobs(已经对此进行了测试),这是正确的解决方案。