I'm finding myself having to manually update my DefaultConnection connection string in my web.config when I run locally. How can I automatically detect when I'm running locally and - when I am - overwrite the default connection string?
I have debug/release transformations working, but these are for deployment. I'm looking for a way to add another option - "local" - if there's any way to do it (or something like it).
You need to add a solution configuration in order to add web.config transformations.
Set your projects configuration aswell, and when you're done, right click on the web.config, select "add transforms" and you're good to go !
Then, when you want to use your local connection string, just use this configuration instead of debug.
It depends on how you debug. If you are using Cassini, afaik your web.config contents will be read regardless of the selected solution configuration (e.g. Debug or Release).
If you are debugging with your local IIS, it depends on what you have set the path in the IIS to. If you have set it to your source code directory, you need to write your local settings into your web.config. If you publish your code into a local directory and set the IIS path accordingly, you can use web.config transforms. (You said, that your web.config transforms are working)
For other future readers:
I'd recommend the following: Have your debug settings in your web.config. Create a solution configuration with "Release" settings (Web.Release.Config), which you use for your publish process.
Check out http://www.tomot.de/en-us/article/5/asp.net/how-to-use-web.config-transforms-to-replace-appsettings-and-connectionstrings for a step by step tutorial for web.config transforms with VS 2010. Although the publish dialog changed in VS 2012, you should be able to adapt the guide to the newer version.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With