首页 文章

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

提问于
浏览
18

在我工作的地方,我们根据需要以及登台和 生产环境 环境创建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文件中共享值,我知道这些值将转换为我需要的值?

2 回答

  • 7

    正如@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
    

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

  • 3

    你可以使用SlowCheetah . 它是visual studio的扩展,可在App.config => https://visualstudiogallery.msdn.microsoft.com/69023d00-a4f9-4a34-a6cd-7e854ba318b5上添加转换功能

相关问题