我有几个Azure部署槽:开发,暂存,生产等。
我想创建一组web.config文件,每个部署插槽一个。因此,web-dev.config,web-staging.config等。
我不想在Azure中使用特定于插槽的设置,因为如果您拥有多个设置,那么将所有设置都保存在一个文本文件中似乎要容易得多。
我不想在单个web.config文件上编写XML转换,因为那太疯狂了。配置文件已经具有足够的复杂性,而没有额外的间接层。即使我不认为,web.config转换似乎也与构建配置无关,而与部署目标无关。我不想为了自己的部署过程而扭曲我的构建过程。
我知道跨文件复制和粘贴配置设置是很困难的,但是到此为止。在MS的某人修复ASP.net中的配置之前,我只想为每个部署目标创建一个文件,然后每天将其命名。
我该怎么做?
你有几个选择。
最明显的是转变。我不知道你为什么这么快就打折它:在环境之间只应该更改一些设置,对吧?
或者您可以拥有多个 .config 文件,然后将其作为部署脚本的一部分(我希望您不只是使用 VS 进行部署)。您的脚本可以选择正确的文件并将其重命名为 web.config。
当然,您可以将所有应用程序设置和连接字符串内容(甚至可能更多)移出 web.config 文件并使用替代配置系统。也许是一个巨大的 XML 或 JSON 文件,其中包含每个环境的所有设置。或者也许使用环境变量。
实际上,您可以根据需要编写部署脚本并设置配置。这不是“由 Microsoft 决定”,而是由您决定,尽管他们使在 ASP.NET 5 中跨多个源使用通用配置系统变得更加容易。