
[英]visual studio 2010 - debug using “release” web.config transform?
[英]How to force replace an element using config transform in Visual Studio?
我们知道Visual Studio有这个很棒的功能来在发布时转换Web.config。 因此,我们可以在Web.Release.config中使用以下内容替换Web.config中的原始值:
Web.config文件:
<add key="SomeKey" value="DebugValue"/>
Web.Release.config:
<add key="SomeKey" value="ReleaseValue" xdt:Transform="Replace" xdt:Locator="Match(key)"/>
只要您在转换配置中没有拼写错误,这一切都很好。 例如,如果您在转换配置中有以下行:
<add key="SomeKeyTypo" value="ReleaseValue" xdt:Transform="Replace" xdt:Locator="Match(key)"/>
然后“SomeKey”项目将不会被替换,因为transform将找不到该键并将以静默方式打印此警告:
...\Web.Release.config: Warning : No element in the source document matches '/configuration/appSettings/add[@key='SomeKeyTypo']'
问题是在某些情况下,如果您更改主Web.config中的密钥而忘记在Web.Release.config中更改它,当您发布时很可能不会读取发布输出消息并且您错过了警告,这可能最终导致灾难,因为Debug值将在您的应用程序中使用而不是Release值。
所以问题是当你在Web中定义转换时.Release.config是否有一种方法可以指示必须替换给定的项目,如果找不到密钥则抛出和ERROR而不是WARNING并基本上退出发布时出现一些错误代码?
您可以将Visual Studio选项设置为“将警告视为错误”,这会导致错误,从而阻止发布任务完成。 您甚至可以将其配置为仅将此特定警告视为错误。
您可以通过转到要部署的项目的“属性页”找到对话框,然后在“靠近底部的构建”下找到您的选项。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.