Asp.net 在Silverlight项目中存储EF数据库连接字符串

Asp.net 在Silverlight项目中存储EF数据库连接字符串,asp.net,configuration,connection-string,Asp.net,Configuration,Connection String,我们是一个由4名开发人员组成的团队,在同一个项目上工作。我们使用实体框架访问SQL数据库后端。我们将连接字符串存储在web.config中 每个开发人员都在针对自己的本地SQL server数据库测试自己的代码。这意味着每个开发人员在web.config中都有自己的SQL Server连接字符串。我的机器上通常有几个不同的数据库副本,其中包含来自不同场景的数据,我通过编辑连接字符串在这些副本之间切换。一个数据库可能是空的,另一个可能包含大量的测试数据等等 我们面临的问题是,我们意外地将web.c

我们是一个由4名开发人员组成的团队,在同一个项目上工作。我们使用实体框架访问SQL数据库后端。我们将连接字符串存储在web.config中

每个开发人员都在针对自己的本地SQL server数据库测试自己的代码。这意味着每个开发人员在web.config中都有自己的SQL Server连接字符串。我的机器上通常有几个不同的数据库副本,其中包含来自不同场景的数据,我通过编辑连接字符串在这些副本之间切换。一个数据库可能是空的,另一个可能包含大量的测试数据等等

我们面临的问题是,我们意外地将web.config定期检入到源代码管理中,这意味着当团队中的另一个开发人员从源代码管理中检索最新代码时,他的本地web.config(及其连接字符串)将被另一个开发人员的web.config覆盖。(顺便说一句,我们使用的是AccuRev,没有好的方法可以忽略某些文件)

我想到了几种不同的黑客解决方案:

  • 创建一个新的配置文件,在其中存储特定于计算机的配置。我们不在源代码管理中签入此文件。或者我们用其他名字登记
  • 在源代码管理中将web.config重命名为web.config.default(或其他名称)。从源代码管理签出后,开发人员必须将web.config.default重命名为web.config才能运行

当然,必须有som标准方法来处理此问题?

如果使用visual studio 2010,则可以使用web.config转换

只是一个想法…
每个开发人员都需要设置自己的构建配置,如DebugDeveloperA、DebugDeveloperB、Staging、Relase等。

Visual Studio 2010为每个生成配置创建web.config转换文件,因此如果从源代码管理获取最新版本,则需要确保使用生成配置。

我采用了以下解决方案:

  • 在源代码管理中将web.config重命名为web.config.default(或其他名称)
  • 作为预构建步骤,请检查web.config是否存在。如果没有,请将web.config.default复制到web.config