首页 > 解决方案 > 了解 ASP.NET Web.config 转换 - Web.Debug.config

问题描述

我已经为此苦苦挣扎了一个小时,找不到简单的解释或至少一些说明这一点的 Microsoft 文档。

我想了解下一个文件的行为:

我在Web.config文件中添加了下一个 appSetting :

<configuration>
  ..
  <appSettings>
    <add key="DevDisplayPanel" value="default value" />
  </appSettings>
  ..
</configuration>

在我的Web.Debug.config 中,我将DevDisplayPanel更改为:

<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
  <appSettings>
    <add key="DevDisplayPanel" 
         xdt:Transform="Replace" 
         xdt:Locator="Match(key)" 
         value="Debug mode" />
  </appSettings>
</configuration>

我显示了 appSettings 项,如下所示:

ViewBag.Test = System.Configuration.ConfigurationManager.AppSettings["DevDisplayPanel"];

我知道如果我在 Visual Studio中运行 Debug -> Start Debugging ,将从 Web.Debug.config 读取 DevDisplayPanel设置。我找不到说明这一点的 Microsoft 文档。

我尝试使用 Debug、Release 和 Staging 解决方案配置运行我的 Web 应用程序,但它们都显示文件Web.config中的 DevDisplayPanel 值。

Web.Debug|Release|MyConfiguraton.config 文件在哪里发挥作用。我错过了什么,最重要的是,这种行为应该在文档的某处用粗体标出!!

标签: c#asp.net-mvcweb-configweb-config-transform

解决方案


Web.config 转换与在给定配置中发布项目相关联。

在 Visual Studio 中调试时,它始终使用普通的 web.config 文件,无论配置是什么。

您需要从菜单选项中选择 Build => Publish,然后运行已发布的应用程序。


推荐阅读