【问题标题】:How to use applicationSettings in the new web.config configuration in VS2010?VS2010新的web.config配置中如何使用applicationSettings?
【发布时间】:2011-02-03 20:35:49
【问题描述】:

我习惯于使用网络部署项目。目前我正在用VS2010开发一个新的web应用程序,想尝试一下新的web.config原理和部署问题。

如何替换一个简单的设置,如

<applicationSettings>
  <NAMESPACE>
   <setting name="Testenvironment" serializeAs="String">
    <value>True</value>
   </setting>
  </NAMESPACE>
</applicationSettings>

我希望在 Debug 中将此设置设置为 True,在 Release 中设置为 false。 Web.Debug.config 和 Web.Release.Config 中的条目应该是什么样子?

顺便说一下:是否有一些关于新 web.config 问题的文档?似乎无法搜索正确的关键字。

【问题讨论】:

    标签: c# asp.net visual-studio-2010 application-settings


    【解决方案1】:

    最好的方法是执行以下操作:

    <applicationSettings> 
      <NAMESPACE> 
       <setting name="Testenvironment" serializeAs="String"  xdt:Transform="Replace" xdt:Locator="Match(name)"> 
        <value>True</value> 
       </setting> 
      </NAMESPACE> 
    </applicationSettings> 
    

    而不是 Zubeyir 的建议,因为这只会替换指定的设置,而不是替换整个 applicationSettings 部分。

    【讨论】:

    • 是的,更具体地说 Jonathan Stanton 的建议是最好的答案,因为 Zubeyir 建议的答案将替换所有 applicationSettings 并且当您通过添加新设置来更新调试版本并且您也忘记更新发布版本时一切都可以用 webconfig 的发布版本替换
    【解决方案2】:

    你也可以这样使用;以 prod 环境为例。

    <applicationSettings xdt:Transform="Replace">
      <NAMESPACE> 
       <setting name="Testenvironment" serializeAs="String"> 
        <value>False</value> 
       </setting> 
      </NAMESPACE> 
    </applicationSettings> 
    

    问候。

    【讨论】:

    • 因为我仍然需要弄清楚:转换只适用于发布网站/应用程序,而不是构建/编译它。
    【解决方案3】:

    您应该将此设置复制到两个 Web 配置文件 - Web.Debug.config 和 Web.Release.config 并将转换属性 xdt:Transform="SetAttributes" xdt:Locator="Match(name)"

    你可以看这个视频教程-http://chriskoenig.net/index.php/2010/04/08/how-do-i-web-config-transformations-in-vs2010/

    希望对您有所帮助。

    【讨论】:

    • 抱歉,这不是正确的答案。 “SetAttributes”只是设置属性。如果要更改值标签,则需要“替换”!
    【解决方案4】:
    【解决方案5】:

    这是一个链接,其中包含有关此主题的大量示例:http://msdn.microsoft.com/en-us/library/dd465326.aspx

    但似乎存在一个问题,尤其是 Web.config 转换和 applicationSettings:使用 xdt-Transform=“Replace” 进行此查询的所有答案都有一个问题,即由于 XML 格式,它们在部署的 Web.config 中引入了额外的空白。如果您使用结果设置,这会导致错误行为。似乎没有解决办法。这是我关于这个问题的未回答问题:VS 2010 configuration transformation produces unwanted white space during deployment

    【讨论】:

      猜你喜欢
      • 2011-02-11
      • 1970-01-01
      • 2015-09-21
      • 2012-12-24
      • 2010-10-27
      • 1970-01-01
      • 2011-11-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多