Web.Debug.config没有处理替换

时间:2011-12-27 21:27:26

标签: asp.net visual-studio-2010

我在VS2010中有一个带有web.config的Web应用程序,如下所示:

...
<configuration>
  <connectionStrings>
    <add name="ApplicationServices"
         connectionString="data source=MyProdDb;Initial Catalog=MyCat;User Id=MyUser;Password=MyPass;"
         providerName="System.Data.SqlClient" /> 
  </connectionStrings>
...

和像这样的Web.Debug.config:

...
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
    <connectionStrings>
        <add name="ApplicationServices"
          connectionString="data source=MyDevDb;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true"
          xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/>
    </connectionStrings>
...

该项目设置为创建一个Debug构建,当我在调试器中运行它时,我得到MyProdDb而不是MyDevDb

我错过了什么?

4 个答案:

答案 0 :(得分:4)

更新信息

现在可以处理任意基于XML的.config文件,处理可以在构建时而不是在部署时进行

http://www.hanselman.com/blog/SlowCheetahWebconfigTransformationSyntaxNowGeneralizedForAnyXMLConfigurationFile.aspx

出色地,转换也可以直接在Visual Studio中预览。

答案 1 :(得分:3)

  

我错过了什么?

您错过了仅在执行部署时才会发生web.config转换的事实。如果您不发布Web应用程序,则不能指望发生任何转换。如果您只是通过点击 F5 在本地运行您的网站,则不会进行转换。只有在您发布应用程序时才会执行转换。

答案 2 :(得分:2)

正如人们所说,web.config版本仅在发布(MSDeploy)时应用。您执行操作的常规方法是在实际的web.config文件中使用“Debug”配置,并对您拥有的每个部署方案进行更改。

答案 3 :(得分:0)

仅在发布时处理Web.config转换。在调试时(即使在发布模式下),正在使用基本的Web.config文件。