关闭发布版本的 MVC 编译调试

Turning off MVC compilation debug for release builds

我的 MVC 5 项目有三个配置文件。 web.configweb.debug.configweb.release.config

我想在发行版中运行时关闭 compilation debug,但似乎无法正常工作。

在web.config

<compilation debug="true"/>

在web.release.config

<compilation debug="false"/>

当我在发布模式下运行时 HttpContext.Current.IsDebuggingEnabled 仍然等于 true(尽管仍然附加到调试器)。

我做错了什么?我试图从主 web.config 中取出标签并将其放入 web.debug.config 但调试器只是抱怨并要求我将其放回 web.config

更新

我的web.release.config看起来像这样

<system.webServer>
  <httpErrors errorMode="Custom">
    <remove statusCode="404" />
    <error statusCode="404" path="/error/notfound" responseMode="ExecuteURL" />
    <remove statusCode="403" />
  <error statusCode="403" path="/error/forbidden" responseMode="ExecuteURL" />
</httpErrors>
</system.webServer>
<system.web>
  <compilation xdt:Transform="RemoveAttributes(debug)" />
  <!--<compilation debug="false"/>-->
</system.web>

在你的web.config中:

<compilation debug="true" ...

在你的 web.release.config:

<compilation xdt:Transform="RemoveAttributes(debug)" />

这将在 compilation 标签的 debug 属性上设置 transform,以便 remov 设置它。您不需要在 web.debug.config 中设置任何转换,因为您不想在调试模式下更改配置。

完成后,发布(部署)您的项目。要对其进行测试,请将您的项目发布到一个文件夹,然后在那里打开 web.config。您会看到 web.config 已被转换。配置转换是一种部署功能。

更多信息在这里:http://www.asp.net/mvc/overview/deployment/visual-studio-web-deployment/web-config-transformations