我是一群在不同地方和不同机器上工作的人。每个人都有自己的连接字符串,nhibernate设置(架构等)和wcf端点。 让我发疯的是,当有人在AppSettings部分添加新密钥时,我的设置会被他的覆盖。 有没有人知道某种方式以某种方式保留或更确切地覆盖某些web.config设置?也许以某种方式替换编译时并在别处定义它们?
答案 0 :(得分:1)
这是我们使用的方法。在源代码管理中,我们提供了具有常见设置的文件web.config.development
。他机器上的每个开发人员都有文件web.config
,基本上是web.config.development
与开发人员的个人设置合并。
每当对web.config.development
进行任何常见更改时,他们的作者都会宣布(通过Skype或电子邮件等),并且每个开发人员都会将这些更改与他自己的web.config
合并。在大多数情况下,web.config
不会经常更改,因此这不是一项耗时的工作。但是我们考虑自动化这个过程,但到目前为止还没有找到任何好的解决方案。
这里的关键点是web.config
不在源代码控制中,它永远不会,它永远不会。这可以保证连接字符串等个别设置不会被意外覆盖。
P.S。还有一点要考虑的是持续集成(如果你有一个)。我们在部署期间添加了一个步骤,web.config.development
被重命名为web.config
。