VS2010新的web.config配置中如何使用applicationSettings?

Posted

技术标签:

【中文标题】VS2010新的web.config配置中如何使用applicationSettings?【英文标题】:How to use applicationSettings in the new web.config configuration in VS2010? 【发布时间】: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 问题的文档?似乎无法搜索正确的关键字。

【问题讨论】:

【参考方案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】:

你也可以看看How to use web.config transforms to replace appSettings and connectionStrings

【讨论】:

【参考方案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。

【讨论】:

以上是关于VS2010新的web.config配置中如何使用applicationSettings?的主要内容,如果未能解决你的问题,请参考以下文章

在 VS2010 和 TFS 中管理团队的 web.config

vs2008,原有的项目中添加了新的aspx文件后,怎样在之后生成的网址中添加新的URL

MSBuild Script 和 VS2010 发布应用 Web.config 转换

VS2012 添加服务参考不更新配置文件

vs.net 2005中web.config智能感知丢失时

web.config 文件中的特殊字符