C# 如何在VS2010的新web.config配置中使用应用程序设置?

C# 如何在VS2010的新web.config配置中使用应用程序设置?,c#,asp.net,visual-studio-2010,application-settings,C#,Asp.net,Visual Studio 2010,Application Settings,我习惯于使用web部署项目。目前,我正在使用VS2010开发一个新的web应用程序,并希望尝试处理新的web.config原则和部署问题 如何替换像这样的简单设置 <applicationSettings> <NAMESPACE> <setting name="Testenvironment" serializeAs="String"> <value>True</value> </setting>

我习惯于使用web部署项目。目前,我正在使用VS2010开发一个新的web应用程序,并希望尝试处理新的web.config原则和部署问题

如何替换像这样的简单设置

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

真的
我希望在调试时将此设置设置为True,在发布时设置为false。Web.Debug.config和Web.Release.config中的条目必须是什么样子


顺便问一下:有关于新web.config问题的文档吗?似乎无法通过谷歌搜索正确的关键字。

您应该将此设置复制到web配置文件web.Debug.config和web.Release.config,并将转换属性放入
xdt:Transform=“SetAttributes”xdt:Locator=“Match(name)”

您可以查看此视频教程-


希望有帮助。

你也可以用这种方式;例如,对于prod环境

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

假的

关于。

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

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

真的

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

这里有一个链接,其中有许多关于此主题的示例:


但是似乎存在一个问题,特别是Web.config转换和应用程序设置:使用
xdt Transform=“Replace”
对此查询的所有答案都存在一个问题,即由于XML格式,它们会在部署的Web.config中引入额外的空白。如果使用结果设置,则会导致错误行为。似乎没有解决办法。关于这个问题,我有一个未回答的问题:。

你也可以看一下

对不起,这不是正确的答案。“SetAttributes”只是设置属性。如果要更改值标记,则需要“替换”!是的,更具体地说,Jonathan Stanton的建议是最好的答案,因为Zubeyir建议的答案将替换所有应用程序设置,当您通过添加新设置更新调试版本时,您忘记了更新发布版本,所有内容都将替换为WebConfig的发布版本,因为我仍然需要这样做弄清楚:转换只适用于发布网站/应用程序,而不是构建/编译网站/应用程序。