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

Is it possible to have App.config transforms for an Azure WebJob for different publish profiles?

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

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

我需要的是 SQL 数据库连接字符串,它指向 Web 应用程序正在使用的同一个数据库。我知道这些可以在 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.config 文件中的值,我知道这些值将转换为我需要的值?

您可以使用 SlowCheetah。它是 visual studio 的扩展,在 App.config => https://visualstudiogallery.msdn.microsoft.com/69023d00-a4f9-4a34-a6cd-7e854ba318b5

上添加了转换可能性

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

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

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

SCM_BUILD_ARGS=-p:Configuration=Dev

设置完成后,Azure 中此 Web 应用程序下的所有 Web 作业都将为父 Web 应用程序中指定的配置获取转换。