This question is kind-of two in one, but both are related to the same problem.
We are a team of 10 developers, some developers prefer to use a full instance of IIS, while others prefer to use IIS-Express. There are merits to using either, for example, IIS most closely resembles production, while IIS-Express allows Edit-and-Continue debugging.
In addition to the 10 developer work team, we are using source control, and we have a branching structure. Each branch may have different web.config / app.config settings, such as database connection strings. A developer may be working on more than one branch a time, so we typically have one database per branch, we are looking at developers having local databases, but the naming collision is still a problem regardless of the approach (i.e. a developer may have 2 local databases, one for each branch).
The first issue, is the one with the csproj files, specifically the web-server settings. If one developer checks in a csproj file that uses IIS-Express, and the other developer does a Get Latest, it will overwrite their configuration, wasting time and creating frustration.
Of course, the easiest solution would be to force everyone to use one tool, one configuration, but I would rather not do that, especially for something that has no bearing on the resulting output (compiled code).
The second issue is with the config files, the config files are stored in source control (just like any other file), so when we do branching-merging, these files have to be updated manually afterwards. I know that there are the Debug and Release transformations for config files, which we could have different connection strings in both, but this does not solve the issue for two individual developers may be working on the same branch but with different connection strings.
The obvious solution to this is everyone has the exact same settings always, but some developers may want to use LocalDB instance, others may want to use SQL-Express, while the staging server uses a full-on SQLServer Instance. Again, this is another setting that has no bearing one the final result.
I have not seen any solutions to my particular problems, in regards to managing configurations between team members, and between branching/merging.