19

我习惯于使用 web 部署项目。目前我正在用 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 问题的文档?似乎无法通过谷歌搜索正确的关键字。

4

5 回答 5

45

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

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

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

于 2010-08-03T08:07:48.103 回答
14

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

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

问候。

于 2010-06-21T08:59:26.703 回答
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/

希望有帮助。

于 2010-05-12T08:40:23.640 回答
1
于 2010-08-13T07:30:49.717 回答
1

You might also have a look at How to use web.config transforms to replace appSettings and connectionStrings

于 2011-01-01T15:24:31.433 回答