Я большой поклонник использования MSBuild, в частности задач сообщества MSBuild (http://msbuildtasks.tigris.org/), и есть задача XSLT для преобразования файла web.config с соответствующими настройками строки подключения и т. Д.
Я держу эти задачи под рукой:
<Target Name="Configs">
<Xslt RootTag="" Inputs="web.config" Output="Web.$(COMPUTERNAME).config" Xsl="web.config.$(COMPUTERNAME).xslt" Condition="Exists('web.config.$(COMPUTERNAME).xslt')" />
Очевидно, что это не на 100% то, что вам нужно, а для того, чтобы каждый разработчик мог иметь свой собственный web.config.
Но нет причины, по которой вы не могли бы использовать вышеупомянутый принцип, чтобы иметь несколько конфигураций сборки, которые применяют правильный XSLT.
Мой XSLT выглядит так:
<?xml version="1.0" encoding="utf-8"?>
<!-- Dev -->
<xsl:template match="/configuration/connectionStrings/add[@name='MyConnectionString']/@connectionString">
<xsl:attribute name="connectionString">Data Source=MyServer;Initial Catalog=MyBD;User ID=user;password=pwd</xsl:attribute>
</xsl:template>
<xsl:template match="node()">
<xsl:copy>
<xsl:apply-templates select="@*"/>
<xsl:apply-templates/>
</xsl:copy>
</xsl:template>