I am interested to know how others support their web.config files for deployed applications. (in the absence of an automatic deployment mechanism - this is beyond the scope of this question)
Therefore, during development, some developers can use the web.config transformations, create / publish their projects (debug / release, test / live configurations), and then deploy all published artifacts to the web server and configure IIS. Some developers can create / publish their projects, deploy published artifacts to a web server, configure IIS, and then manually update web.configs for the specific environment (test / live, etc.) in which they are deployed.
Once the deployment is completed and the application is under development (both in a live and in a test environment), how are you going to support the web.config files over time, if you say that the database connection string or application settings key needs to be changed
Do you use web.config conversions, make changes to VS, republish the application, and then copy the entire application, or perhaps just the new web.config to the server?
Do you only manually make changes to web.config on the server?
You control the version of web.config of changes to the source control if lines such as connection strings, application keys, etc. have changed. (not structure)?
I am interested to know how others are approaching this.
We are currently making changes to the web.config file. When we introduce new features or bug fixes, we control these changes and any changes to the web.config file, such as new application keys, etc. If we need to deploy a new version of the application, we will create a backup copy of the current version on the production server, delete all file exception configuration files, then copy the new version without configuration files to the production server, saving the existing configuration. Then manually compare the existing configuration with the one that we have in the original control to account for changes in the circuit.
We shy away from revising this because we want the procedure to be reproducible and not vulnerable to human error. I am not sure if the solution is a 100% web.config conversion. Even if you use transformations, it still seems that human intervention is required in the deployment, because potentially the value in the production configuration file could be changed and not updated in the original control. How do others deal with this?