VS2010中每个发布配置文件的不同连接字符串

时间:2010-06-17 20:45:00

标签: asp.net visual-studio web-config web-config-transform msbuild-wpp

是否可以根据所选的Web发布配置文件更改连接字符串(或仅服务器主机)?也许使用Web.config transform或其他方式?

我的意思是配置文件“测试”将连接字符串“MyConnString”(在已发布的Web.config中)更改为"Data Source='example.com,14333;...",将配置文件“生产”更改为"Data Source=./SQLExpress;..."

1 个答案:

答案 0 :(得分:11)

这正是为其创建Web配置转换的原因。您在帖子中提供的链接有一个专门针对连接字符串执行此操作的演练。

要开始转换,请右键单击项目资源管理器中的web.config文件,然后选择“添加配置转换”。假设您的解决方案配置中有ConfigA和ConfigB,则会添加两个新文件:Web.ConfigA.config和Web.ConfigB.config。

如果你打开这些新文件,除了一堆评论外,它们都会很空。它们实际上包含一个连接字符串示例,您可以使用它们 - 它看起来像这样:

<connectionStrings>
  <add name="MyDB" 
    connectionString="Data Source=ReleaseSQLServer;Initial Catalog=MyReleaseDB;Integrated Security=True" 
    xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/>
</connectionStrings>

取消注释此部分,并将“name”属性更改为基本web.config文件中的连接字符串的名称。将“connectionString”属性设置为要用于ConfigA的实际值。所以,像这样:

<connectionStrings>
  <add name="myConnectionString" 
    connectionString="Data Source=ConfigASqlServer;Initial Catalog=ConfigADatabase;Integrated Security=True" 
    xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/>
</connectionStrings>

对Web.ConfigB.config文件重复此过程,其中包含ConfigB所需的连接字符串。

现在,当您在visual studio中使用“发布”命令时,它将自动转换基本web.config文件,并将“connectionString”属性设置为您发布时所处的任何配置。