I use Build Definitions and WebDeploy in order to simplify pushing updates from a Team Foundation Server to an ASP.NET Web Application on my IIS server.
But files such as, .cshtml, .js, .css, etc. may get changed by the users of the web application via an interface on the web site.
My issue is, when deploying my web application via Build Definitions, all files will get overwritten. I want to avoid overwriting the files that the users have changed.
As I it, I have the following solutions
- Manually copy all files (.cshtml, js, css, .etc) and merge them into my source code
- On every build, make a backup, and restore the files that the users have changed and do manual merges on changed files
- Somehow pull the files from the IIS to the TFS and merge them
Is options #3 possible, I'm looking for as much automation as possible.
I would look to seperate out the bits that the customer customizes from the core functionality of my product. They should never customize the files that i deploy and instead add files that override yours.
I assume that you want to be able to upgrade them continuously.