title: Best practice for committing minimal web reference files and having the rest auto-generated as part of CI
body: <p>Our team has a .net code base that includes several projects with web references to other projects in the same solution.
  When a developer commits a change that influences the reference they (should) update the web references locally in all relevant places and commit these changes together with the actual code change.
  This includes  xsd, svcmap, datasource , wsdl, reference.cs files that are all included in the source control (SVN). we are using teamcity for CI.</p>
  
  <p>This results in various problems:</p>
  
  <p>•   The commit process is long </p>
  
  <p>•   The commit process is very prone for mistakes\developers forgetting to commit a web reference (this happens every once in a while) </p>
  
  <p>•   a possible race problem when 2 developers are trying to commit “competing” changes and one of them ends up redoing the whole thing since the SVN cannot resolve the conflicts</p>
  
  <p>We are trying to find a better solution that includes an automatic build of the web references and minimizing the non-code files that are committed by the team.
  basically, we want the developers to commit as little as possible, and let the CI (or other process?) build the other needed files.
  we would prefer something that can be part of the teamcity regular run (I’m very unfamiliar with it so assume I know nothing about it).
  What is the best practice to do this?
  I’m pretty sure this is a problem that many teams need to deal with, yet couldn’t find a relevant reference 
  (from what I recall in my previous workplace we didn’t commit most of these files, but I don’t know how the “magic” was done…)</p>
  
  <p>(I’m aware of svcutil.exe, but not sure if that’s the way to go here)</p>
  
  <p>I’ve also seen this:
  <a href="https://stackoverflow.com/questions/8869044/updating-web-references-as-part-of-tfs-builds">Updating &quot;Web References&quot; as part of TFS Builds</a>
  our case is a bit different (we have references that are a result of our own code), and we actually would like it to break if another part of the code needs to change.</p>