我怎样才能让每个开发人员拥有自己的私有web.config?

时间:2015-05-31 18:50:45

标签: c# .net configuration web-config

考虑一群开发人员在ASP.net Web应用程序上工作。每个开发人员都有一个DB的私有副本,在他们的私有本地数据库引擎上运行,因此每个开发人员都有一个不同的连接字符串。

目前,每个开发人员都使用他们的连接字符串修改了web.config,有时其中一个修改被提交给源代码控制,这是不好的。

我如何在源代码管理中都有默认的web.config,并让每个开发人员拥有自己的私有副本,而源代码控制会忽略它们? (如果可能的话,我更倾向于避免使用web.config转换文件的解决方案,因为它们的语法有点不透明。)

2 个答案:

答案 0 :(得分:1)

有几件事可以提供帮助。

  1. 执行所有开发人员遵循的约定。例如,在所有开发人员机器上,Sql Server实例名称,数据库名称等应该相同,这样您就不需要更改它们。此外,任何文件位置类型的设置应始终与项目或某个系统位置相对应。总体而言,我们的想法是保留您的设置,以便开发人员无需签出和更改任何内容。

  2. 在某些情况下,可能无法执行上述操作。在这种情况下,您可以将这些更改的设置移动到其他文件,并使用“configSource”在web.config中引用它。然后,开发人员可以根据其本地计算机环境更改该设置文件。同样在这种情况下,您希望确保团队中的每个人都不能签入该文件,以防止不必要的覆盖。

  3. 希望它有所帮助。

答案 1 :(得分:1)

在我们的项目中,我进行了设置,以便默认配置在源代码管理下为web.config.template,并忽略web.config本身。然后,开发人员只需将web.config.template复制为web.config;并进行他们需要的任何本地编辑。

这很简单,可以作为一个手动的东西,但也可以使用MSBuild自动复制(只有在web.config尚不存在时才复制。)

如果您有CI /构建服务器,那么您可能还想采用web.config.template包含用于CI构建的配置的方法 - 这样就简化了CI构建,因为它总是可以覆盖{ {1}} web.config