C# 多个开发人员使用具有不同设置的单个web.config

C# 多个开发人员使用具有不同设置的单个web.config,c#,asp.net-mvc,asp.net-mvc-3,web-config,C#,Asp.net Mvc,Asp.net Mvc 3,Web Config,我正在创建一个ASP.Net MVC web应用程序。团队中有多个开发人员需要在web.config文件中具有不同的设置。这些设置用于数据库连接和需要访问的本地linux虚拟机。在未来,我们还需要添加其他内容。每个开发人员都可以使用什么方法在web.config中拥有自己的自定义设置,而不用担心本地设置被提交到源代码管理 部署配置将不起作用,因为它们通过本地开发VS web服务器运行站点。我们将使用部署配置部署到我们环境中的不同阶段。我不确定这是否是最高科技的解决方案,但我只是将我的web.co

我正在创建一个ASP.Net MVC web应用程序。团队中有多个开发人员需要在web.config文件中具有不同的设置。这些设置用于数据库连接和需要访问的本地linux虚拟机。在未来,我们还需要添加其他内容。每个开发人员都可以使用什么方法在web.config中拥有自己的自定义设置,而不用担心本地设置被提交到源代码管理


部署配置将不起作用,因为它们通过本地开发VS web服务器运行站点。我们将使用部署配置部署到我们环境中的不同阶段。

我不确定这是否是最高科技的解决方案,但我只是将我的web.config称为“web.config.sample”,并将web.config添加到svn:ignore。这可以防止开发人员意外地将其签入

将新密钥添加到web.config时,只需记住在web.config.sample中复制它

当开发人员签出新副本时,他们只需重命名和配置此文件。我在几家公司工作过,我们每次都这样做,所以我不确定是否真的有其他方法可以做到这一点

编辑:您还可以设置一个预提交钩子,以确保没有人在同样包含web.config.sample的目录中签入web.config


编辑#2:您还可以设置一个post-commit钩子,当web.config.sample更新时,该钩子将向所有相关人员发送电子邮件,这样他们的应用程序在查找缺少的配置密钥时不会开始失败。我以后会这样做。

配置XML文件中的大多数部分都允许您使用。我们使用此属性将常用的dev修改部分放入一个单独的文件中。这些通常修改的部分中的每一部分都有单独的*.dev.config和*.prd.config文件。源代码管理(git)忽略了*.dev.config文件


然后,生产部署将configSource属性设置为使用*.prd.config文件。同样,这意味着您需要使两组配置保持最新。我开始研究一种解决方案,使*.prd.config和*.dev.config文件在元素级别保持同步,但一直没有时间完成它。

。。。您的源代码管理是?@AustinSalonen我们正在使用git您尝试过web.config转换吗?是的,保持文件同步的挑战是我愿意解决的,因为其余的都很简单!