Web配置合并AppSettings

时间:2014-11-27 15:36:46

标签: c# asp.net asp.net-web-api asp.net-web-api2

情况就是这样,我希望key中的Web.config在我的Web.Debug.config和我的Web.Release.config中发生变化,但我不确定如何做到这一点。

我有Web.config

  <appSettings>
    <add key="webpages:Version" value="3.0.0.0"/>
    <add key="webpages:Enabled" value="false"/>
    <add key="ClientValidationEnabled" value="true"/>
    <add key="UnobtrusiveJavaScriptEnabled" value="true"/>
  </appSettings>

我不确定Web.Debug.config添加密钥key="host" value="somevalue"是什么意思,所以我试过这个:

<appSettings>
  <add key="RunningHost" value="http://localhost:55169/" xdt:Transform="Insert" />
</appSettings>

此:

<appSettings xdt:Transform="Insert">
  <add key="RunningHost" value="http://localhost:55169/" />
</appSettings>

此:

<appSettings xdt:Transform="Replace">
  <add key="RunningHost" value="http://localhost:55169/" />
</appSettings>

无济于事。我这样读了我的配置:

var appSetting = WebConfigurationManager.AppSettings["RunningHost"];

2 个答案:

答案 0 :(得分:1)

所以我找到了答案。

这是因为当我调试网络项目时,它没有编译一个新的配置,将web.debug.configweb.config结合起来。

但是,如果您将其发布以供发布,则会将web.release.configweb.config合并。

因此,简单的解决方法是将RunningHost放入web.config。然后释放覆盖它!

答案 1 :(得分:0)

第一个选项是正确的。您的完整Web.Debug.config应如下所示:

<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
  <appSettings>
    <add key="RunningHost" value="http://localhost:55169/" xdt:Transform="Insert" />
  </appSettings>
</configuration>

您可以右键单击解决方案资源管理器中的Web.Debug.config,然后选择预览转换以查看转换后的输出。