First of all I know there are several pages about this issue e.g. Web.Config Debug/Release, Web.config Transformation Syntax now generalized for any XML configuration file and Web.config File Transformations. But most of them are outdated and does not mentioned clearly about all of the three files: Web.config, Web.Debug.config, Web.Release.config.
So, assume that I have the following settings for Web.config:
Web.config:
<appSettings>
<add key="ClientId" value="xxxxx"/>
<add key="ClientSecret" value="xxxxx"/>
</appSettings>
And I want to use these settings in debug and release in the following ways:
Web.Debug.config:
<appSettings>
<add key="ClientId" value="ddddd"/>
<add key="ClientSecret" value="ddddd"/>
</appSettings>
Web.Release.config:
<appSettings>
<add key="ClientId" value="rrrrr"/>
<add key="ClientSecret" value="rrrrr"/>
</appSettings>
1) What is the procedures to perform this accurately? I think while debugging and publishing, these settings are used automatically according to my selection Debug or Release in Visual Studio run and publish dialog. Is that true?
2) Should I remove these settings from Web.config after moving to Web.Debug.config and Web.Release.config?
3) What is the Test selection in the Configuration field of the Publish dialog in VS?
Any help would be appreciated.
web.debug.configandweb.debug.configboth, or in one of them according to our needs. I mean that, assume we have a connection string for prod database inweb.configand need to use connection string for test database while debugging. In that case we should define test connection string (with transformed form of course)web.debug.configand we do not anything inweb.release.config. Is that true?web.configconfiguration even if I select Release. But I expect to useweb.release.configwhen selecting release. Is it normal?