Azure devops Azure Webjobs app.config发布转换

Azure devops Azure Webjobs app.config发布转换,azure-devops,azure-web-app-service,azure-webjobs,azure-pipelines,azure-pipelines-release-pipeline,Azure Devops,Azure Web App Service,Azure Webjobs,Azure Pipelines,Azure Pipelines Release Pipeline,我有一个webjob和一个webapp(都是独立的项目),我想为所有环境构建一个工件,并在发布步骤中进行转换,而不是构建,因为这样我必须为每个环境创建一个工件。因此,我正在为每个环境创建两个独立的构件(一个用于webapp,一个用于webjob),并在发布到应用程序服务期间应用xml转换,现在一切正常,只是webjob的转换文件放在webapp的根目录中,这不是我想要做的。我希望将文件放置为app\u data\jobs\continuous\myjob\myjob.exe.config 我见过

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

我见过缓慢的cheeta和CTT转换,但它们超出了这个问题的范围,因为它们只在构建时进行转换


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

步骤应该是

  • 内建使用转换标记化配置(使用此选项)
  • 将标记化配置打包为生成输出
  • 在部署时,将目标值应用于令牌(使用任务附带的替换令牌,该任务通过映射名称自动将已定义配置的值替换为释放变量值。换句话说,令牌应为参数名称)

  • 。但是它也适用于webjobs(已经测试过),这是一个合适的解决方案。

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


    有关如何在构建/松弛期间调用kudu api的更多信息,请参阅:

    只有将webjob项目添加到网站,然后从该网站创建工件时,此方法才有效。但我们希望将网站和webjob保留在单独的应用程序服务计划中,以提高我们的应用程序弹性,这样当webjob需要更多资源时,它就不会对webapp造成瓶颈。