在我工作的地方,我们根据需要创建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文件中共享值,我知道这些值将转换为我需要的值?
答案 0 :(得分:7)
正如@binard建议的那样,Slow Cheetah是创建web.config或app.config转换的好方法。创建变换后,您还可以预览特定配置的变换。
我首选的方法是创建自定义配置,例如Dev和Prod并使用" Slow Cheetah XML Transforms"扩展为Dev和Prod创建了除Debug和Release之外的转换。
完成此步骤后,下一个挑战是确保Azure中的持续部署设置选择了正确的配置。为此,您必须在"应用程序设置"中设置与Azure Web App关联的配置。 Azure门户中的部分。例如:
SCM_BUILD_ARGS=-p:Configuration=Dev
设置完成后,Azure中此Web应用程序下的所有webjobs都将获取父Web App中指定的配置的转换。
答案 1 :(得分:3)
您可以使用SlowCheetah。它是visual studio的扩展,可在App.config =>上添加转换功能。 https://visualstudiogallery.msdn.microsoft.com/69023d00-a4f9-4a34-a6cd-7e854ba318b5