title: Automatic patch building and deployment of .NET application
body: <p>The question in short form and then the explanation
  We want to create patches and include only files which have changed in the build due to some bugfixes for a dotnet application. The patches should get automatically built in the Continuous Integration process involving SVN, Cruisecontrol.net and msbuild.</p>
  
  <p>We have a scenario here:
  We want to maintain a .net application which runs on remote servers using continuous integration. The source code is in a SVN and has 3 different repositories for DEV, QA and PROD.
  Our developers do new bug fixes almost everyday and merge the changes into the dev repository after their initial testing and satisfaction.
  The code after a certain problem is solved or a feature has been added is then merged into the QA repository.
  The QA code is built and tested on QA machines manually.
  After the QA testing we merge it into PROD. With it the QA also makes new patches for the files which have to be replaced or changed manually. Then the patches are deployed on a staging server. On which it is tested until perfect and then the patches are deployed on actual remote servers.</p>
  
  <p>In search of continuous integration we are now trying to use a mix of CruiseControl.net and msbuild to do the process. <strong>The process is good until the stage where we have to generate patches from the QA builds automatically</strong>. After the patches are generated we will put them on a ftp server and from their they will be downloaded to the staging server to be tested. 
  The problem i.e. the generation of patches from the new build has a few aspects. The solution file for the application has many projects and the dlls are copied using postbuild events to the startup app bin folder. So we have a specific directory structure in the actual application which itself is a combination of 6 solutions which are more or less independent of each other.</p>
  
  <p>The way we are trying to create the patches is we are searching the logs of svn to find which files have changed. Then we are parsing it finding the project name. Then we are copying all the files from the bin directory of that project to the patch folder in the specific manner in which the release has them by using a mapping file which has all the files of the application in it.</p>
  
  <p>So can anyone please suggest a much better or easier way to make a patch provided we have svn and the cruisecontrol.net. Or any other opensource tool to do that.</p>
  
  <p>hope the problem is clear</p>