【发布时间】:2019-03-21 23:30:00
【问题描述】:
我已经为此苦苦挣扎了一个小时,但找不到简单的解释或至少一些说明这一点的 Microsoft 文档。
我想了解下一个文件的行为:
- Web.config
- Web.Debug.config
- Web.Release.config
- Web.Staging.config(我是使用右键单击 Web.config -> 添加配置转换创建的)
我在 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 文件在哪里发挥作用。我错过了什么,最重要的是,这种行为应该在文档的某处用粗体标出!!
【问题讨论】:
-
我过去调试不同配置所做的是通过放置“__ somevalue __”而不是实际值来“标记”各种配置文件。然后为每个带有真实值的构建配置创建一个 xml 文件(或您的偏好)。替换令牌的简单 .exe 设置为在构建后步骤中运行,并替换 bin 文件夹中的配置文件。它并不像听起来那么糟糕。
标签: c# asp.net-mvc web-config web-config-transform