发布时,不会复制Web.Release.config中connectionStrings的内容

Fab*_*cio 4 asp.net-mvc connection-string asp.net-mvc-4

我有一个connectionString Web.Debug.config,另一个是不同的Web.Release.config.

当我发布我的项目时,内容Web.Release.config不会出现在已Web.config发布的内容中.为什么?

Web.config文件

<configuration>
    <connectionStrings>
        <!-- <add name="DefaultConnection" providerName="System.Data.SqlClient" connectionString="Data Source=(LocalDb)\v11.0;Initial Catalog=aspnet-SalvaVidas-20130610104655;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\aspnet-SalvaVidas-20130610104655.mdf" /> -->
    </connectionStrings>
Run Code Online (Sandbox Code Playgroud)

Web.Debug.config

<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
    <connectionStrings>
        <add name="MyContext"
             providerName="System.Data.SqlClient"
             connectionString="Data Source=(LocalDb)\v11.0;Initial Catalog=MyDb;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\MyDb.mdf" />
    </connectionStrings>
Run Code Online (Sandbox Code Playgroud)

Web.Release.config

<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
    <connectionStrings>
        <add name="MyContext"
             providerName="System.Data.SqlClient"
             connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=MyDb;Server=ServerName;Database=MyDb;Trusted_Connection=True;Integrated Security=SSPI;" />
    </connectionStrings>
Run Code Online (Sandbox Code Playgroud)

Sim*_*ger 11

问题是您没有使用Web.debug.config/Web.release.config作为转换.

你需要这样做:

<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
  <connectionStrings>
    <add name="MyContext"
         connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=SalvaVidas;Server=ServerName;Database=MyDb;Trusted_Connection=True;Integrated Security=SSPI;" 
         xdt:Transform="SetAttributes"
         xdt:Locator="Match(name)"/>
</connectionStrings>
Run Code Online (Sandbox Code Playgroud)

xdt:Locator条目将Web.config通过name属性找到原始条目,位于connectionString > add.在xdt:Transform将改变的属性在你指定的一个Web.release/debug.config.

但是,这在Web.config的当前状态下不起作用,因为连接字符串条目已注释掉.如果您对其进行注释,则需要更改 xdt:TransformInsert.

有关Web.config转换的更多信息,请查看此MSDN条目