4

我可以看到该Web.config文件包含两个文件:

-web.Debug.config
-web.Release.config

在此配置文件中有以下注释:

在下面的示例中,只有当“Match”定位器找到值为“MyDB”的属性“name”时,“SetAttributes”转换才会将“connectionString”的值更改为使用“ReleaseSQLServer”。

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

是什么"Match" locator?我已经有一个连接字符串Web.config那么我该如何设置呢?主 web.config 文件应该包含生产连接字符串还是相反?我正在寻找做过类似事情的人的建议

4

2 回答 2

7

我们正在使用 xdt:Transform="Replace" ,它基本上替换了我们开发数据库的连接字符串,并且效果很好。见下文:

开发连接字符串(在您的情况下为 web.Debug.config):

<connectionStrings>
  <add name="MyDB" connectionString="Data Source=DebugSQLServer;Initial Catalog=MyDebugDB;Integrated Security=True" providerName="System.Data.SqlClient" />
</connectionStrings>

生产连接字符串(在您的情况下为 web.Release.config):

<connectionStrings xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
    <add name="MyDB" connectionString="Data Source=ReleaseSQLServer;Initial Catalog=MyReleaseDB;Integrated Security=True" xdt:Transform="Replace" xdt:Locator="Match(name)" />
</connectionStrings>
于 2013-10-11T18:09:37.860 回答
0

Match(name)意味着connectionString在您的情况下,MyDB的名称与 web.config 中的名称相同,它将在您发布网站时将connectionString属性设置为您web.debug.config文件中的内容。connectionString可以在MSDN上找到完整的文档。在这里可以找到基本的操作方法。

于 2013-10-11T18:16:49.960 回答