Need some assistance with my Visual Studio projects and in particular with release process. To release my web application, I use a web deployment project to deploy my web application.
I have split my connection strings and app settings into a seperate config files, with a config file for each environment I might be creating the msi for eg. dev, qa, staging, prod.
The config files are chosen based upon it being set in the web.config.
So I have the following list of tasks I would like to do on deployment time:
- Ensure that debuging set to false in the web.config.
- When I go to install the MSI in the particular environment, I would like the option in the installer to be able to select the environment I am installing the MSI to, and the web.config is altered to point at the config files for that enviroment.
How can I achieve the above? Can I create custom actions in the MSI installer and if so, how? Should I look at introducing a MsBuild task to ensure I am releasing with debugging turned off.
Would like some information on the above please.
If you are using WiX, then you could add a new page to the setup wizard that sets a property to hold the type of environment you’re installing to.
After that you will need to write a custom action in C# using DTF (included in WiX) to check the value of the property and write the correct values to the web.config file. The same custom action could also verify the debug value in web.config.