我习惯使用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问题的文档?似乎无法谷歌搜索正确的关键字。
答案 0 :(得分:45)
最好的方法是执行以下操作:
<applicationSettings>
<NAMESPACE>
<setting name="Testenvironment" serializeAs="String" xdt:Transform="Replace" xdt:Locator="Match(name)">
<value>True</value>
</setting>
</NAMESPACE>
</applicationSettings>
而不是Zubeyir建议,因为这个只会替换指定的设置而不是替换applicationSettings部分的WHOLE。
答案 1 :(得分:13)
你也可以用这种方式;例如,对于prod环境。
<applicationSettings xdt:Transform="Replace">
<NAMESPACE>
<setting name="Testenvironment" serializeAs="String">
<value>False</value>
</setting>
</NAMESPACE>
</applicationSettings>
问候。
答案 2 :(得分: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/
希望有所帮助。
答案 3 :(得分:1)
以下是此主题的大量示例链接: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。
答案 4 :(得分:1)