这个问题是二合一的,但两者都与同一个问题有关。
我们是一个由 10 名开发人员组成的团队,一些开发人员更喜欢使用 IIS 的完整实例,而另一些开发人员更喜欢使用 IIS-Express。使用其中任何一种都有优点,例如,IIS 最接近生产环境,而 IIS-Express 允许编辑并继续调试。
除了 10 个开发人员工作团队外,我们还使用源代码控制,并且我们有一个分支结构。每个分支可能有不同的 web.config / app.config 设置,例如数据库连接字符串。开发人员一次可能在多个分支上工作,因此我们通常每个分支有一个数据库,我们正在研究具有本地数据库的开发人员,但是无论采用哪种方法,命名冲突仍然是一个问题(即开发人员可能有 2本地数据库,每个分支一个)。
第一个问题是带有 csproj 文件的问题,特别是 Web 服务器设置。如果一个开发人员签入使用 IIS-Express 的 csproj 文件,而另一个开发人员执行Get Latest,它将覆盖他们的配置,浪费时间并造成挫败感。
当然,最简单的解决方案是强制每个人使用一种工具、一种配置,但我宁愿不这样做,特别是对于与结果输出(编译代码)无关的东西。
第二个问题是配置文件,配置文件存储在源代码管理中(就像任何其他文件一样),所以当我们进行分支合并时,这些文件必须在之后手动更新。我知道配置文件有调试和发布转换,我们可以在两者中使用不同的连接字符串,但这并不能解决两个单独的开发人员可能在同一个分支上工作但使用不同的连接字符串的问题。
显而易见的解决方案是每个人都始终拥有完全相同的设置,但一些开发人员可能想要使用 LocalDB 实例,其他人可能想要使用 SQL-Express,而临时服务器使用完整的 SQLServer 实例。同样,这是另一个与最终结果无关的设置。
在管理团队成员之间以及分支/合并之间的配置方面,我还没有看到任何解决我的特定问题的方法。