每个环境的配置文件

本文关键字:配置文件 环境 | 更新日期: 2023-09-27 18:02:11

我正在研究一个有几个配置文件(Web, ConnectionStrings Windsor, Smtp, Appsettings, Nlog等)的环境(Local,Development,Main,Prod,Live)的项目。

当前使用的策略是为每个分支使用其中一个配置,并手工维护配置,而不合并任何更改。

在这种设置中存储和部署配置文件的更优雅的选项是什么?

每个环境的配置文件

一般来说,我尽量将这些设置保留在appSettings中(尽管我知道这不是"官方"的正确位置)。然后我将appSettings分解到一个环境中。配置文件,并在web中添加appSetting元素。

设置新环境时,我手动设置环境。该环境的配置文件。当我部署新版本时,我排除了环境。配置文件,以便特定于环境的版本保持在适当的位置。

这允许您部署web的新副本。配置以包含项目相关的更改,同时将所有真正特定于环境的设置保存在单独的位置。

一个优雅的解决方案是使用WebDeploy(来自Microsoft)来部署您的web应用程序。当您运行部署时,您可以指定一个特定于站点的参数文件,该文件将用于替换web中的几个值。配置文件。

对于部署,WebDeploy使用一个部署包,由Visual Studio或msbuild创建。

这样,我们就有了一个单独的部署包,我们可以首先将它部署在一个测试系统上,运行几个测试,然后,当它通过测试时,在几个服务器上不做任何更改地部署。每个服务器都有自己的本地参数文件,该文件几乎不会更改,并且包含站点特定的值。

将它们存储在所有环境中具有相同名称的文件服务器上。我不熟悉所有的配置,但大多数都有这样做的方法。这种方法的唯一问题通常是dev/local,它们经常共享一个文件服务器,所以你必须手动更改本地。

如果你确实不能将配置指向文件服务器,一个不太优雅的解决方案是在部署或启动时通过bat文件将它们拉下来。似乎有很多选项,而不是手工维护,这是容易出错的。