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

aba*_*hev 5 asp.net web-config visual-studio web-config-transform msbuild-wpp

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

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

wom*_*omp 13

这正是创建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>
Run Code Online (Sandbox Code Playgroud)

取消注释此部分,并将"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>
Run Code Online (Sandbox Code Playgroud)

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

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

  • 请问另一个问题.转换取决于配置 - 调试,发布等.是否可以将其与发布配置文件链接 - Server1,Server2等.我对所有配置文件使用相同的配置.或者我必须为每个配置文件创建单独的配置?但是在这种情况下如何链接配置文件和配置? (11认同)