Преобразования web.config, являющиеся частью Visual Studio 2010, используют XSLT для «преобразования» текущего файла web.config в его версию .Debug или .Release.
В файлах .Debug / .Release необходимо добавить следующий параметр в поля строки подключения:
xdt:Transform="SetAttributes" xdt:Locator="Match(name)"
Это приведет к тому, что каждая строка строки подключения найдет соответствующее имя и обновит атрибуты соответствующим образом.
Примечание. Вам не придется беспокоиться об обновлении параметра providerName в файлах преобразования, поскольку они не меняются.
Вот пример из одного из моих приложений. Вот раздел файла web.config:
<connectionStrings>
<add name="EAF" connectionString="Data Source=NTSQLT\S2K5TST;Initial Catalog=HR;User ID=EAFApp;Password=XXXX" providerName="System.Data.SqlClient" />
</connectionString>
А вот раздел web.config.release, выполняющий правильное преобразование:
<connectionStrings>
<add name="EAF" connectionString="Data Source=NTSQLP\S2K5TST;Initial Catalog=HR;User ID=EAFApp;Password=YYYY" xdt:Transform="SetAttributes" xdt:Locator="Match(name)" />
</connectionStrings>
Одно добавленное примечание: преобразования происходят только при публикации сайта, а не при простом запуске его с помощью F5 или CTRL + F5. Если вам нужно запустить обновление для определенной конфигурации локально, вам придется вручную изменить файл Web.config для этого.
Более подробно вы можете посмотреть в документации MSDN
https://msdn.microsoft.com/en-us/library/dd465326(VS.100).aspx