是否可以针对不同的发布配置文件为Azure WebJob进行App.config转换?

Tyl*_*ohl 18 app-config azure web.config-transform azure-webjobs

在我工作的地方,我们根据需要以及登台和生产环境创建Azure网站和SQL数据库以用于开发目的.我们为每个发布配置文件创建一个web.config转换,以将数据库连接字符串更改为与该网站关联的数据库.

现在,我正在尝试创建一个需要对数据库进行更新的Azure WebJob.我通过右键单击Web应用程序项目并选择添加新的Azure WebJob来创建它.

我需要做的就是我需要它做的是SQL数据库连接字符串,它指向Web App正在使用的同一个数据库.我知道这些可以在Azure门户中设置并使用配置管理器获取,但我宁愿能够在WebJob的App.config中使用它并根据需要转换App.config.

我尝试使用Slow Cheetah,但似乎只能对Debug和Release配置进行转换.

我开始完成本博客中指定的步骤:http: //gunnarpeipman.com/2013/11/using-web-config-transforms-with-app-config-files/

它告诉您如何手动编辑.csproj文件以启用App.config转换.但是,这不是更好的解决方案,因为您必须手动编辑项目文件以进行所需的每个转换.

谁能告诉我如何实现这一目标?它甚至可能吗?或者有没有办法在我的web应用程序的web.config文件中共享值,我知道这些值将转换为我需要的值?

Cha*_*hai 8

正如@binard建议的那样,Slow Cheetah是创建web.config或app.config转换的好方法.创建变换后,您还可以预览特定配置的变换.

我首选的方法是创建自定义配置,例如Dev和Prod,并使用"Slow Cheetah XML Transforms"扩展为Dev和Prod创建除Debug和Release之外的转换.

完成此步骤后,下一个挑战是确保Azure中的持续部署设置选择了正确的配置.为此,您必须在Azure门户的"应用程序设置"部分中设置与Azure Web App关联的配置.例:

SCM_BUILD_ARGS=-p:Configuration=Dev
Run Code Online (Sandbox Code Playgroud)

设置完成后,Azure中此Web应用程序下的所有webjobs将获取父Web应用程序中指定的配置的转换.