我们知道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是否有一种方法可以指示必须替换给定的项目,如果找不到该键 throw和错误而不是警告并基本上退出发布时带有一些错误代码?
答案 0 :(得分:0)
您可以将Visual Studio选项设置为“将警告视为错误”,这会导致错误,从而阻止发布任务完成。您甚至可以将其配置为仅将此特定警告视为错误。
您可以通过转到要部署的项目的“属性页”找到对话框,然后在“靠近底部的构建”下找到您的选项。