IF !DEBUG 块在 ASP.NET Webform 项目上调试为真时工作

Posted

技术标签:

【中文标题】IF !DEBUG 块在 ASP.NET Webform 项目上调试为真时工作【英文标题】:IF !DEBUG block works when debug is true on ASP.NET Webform project 【发布时间】:2015-01-18 15:16:06 【问题描述】:

我有一个 ASP.NET 4.5 WebForm 项目,我需要避免在本地计算机上运行特定功能。

为此,我正在使用

#if !DEBUG
 My code
#endif

问题是这段代码会以任何方式运行吗?我已经尝试在 Visual Studio 中设置下拉组合直到 Debug 并且我尝试设置 <compilation debug="true" targetFramework="4.5"> 但代码仍在运行?

我相信当项目设置为正确状态时,if 部分应该变暗,但不是?

我做错了什么?

【问题讨论】:

您的问题不清楚,但我建议您改用属性 HttpContect.Current.Request.IsLocal。 @HasanGürsoy 问题是,在本地计算机上运行时如何排除特定代码?如果根据我的帖子进行调试,我已经尝试过,但那什么也没做? Request.IsLocal,它如何知道它是在我的计算机还是主机服务器上执行?我需要它只在主机上而不是在我的开发计算机上运行代码。 如果您从另一台机器请求页面/代码而不是该请求不是本地的。 您的 WebForms 项目必须/应该是 Application 才能正常工作。嗯…… 这是一个网站“项目”(File->New Web Site),还是一个 Web 应用程序项目(File->New Project)?后者将有一个 .csproj 或 .vbproj 文件。 【参考方案1】:

最重要的是你记得把你的项目切换到releasedebug。这告诉编译器要运行哪个指令代码块。

您的语法是正确的,您也可以这样做:

#if DEBUG
 Some Code
#else
 My code
#endif

【讨论】:

以上是关于IF !DEBUG 块在 ASP.NET Webform 项目上调试为真时工作的主要内容,如果未能解决你的问题,请参考以下文章

[ASP NET MVC] 使用ReportViewer执行用户端报表定义文件(.rdlc)产出报表

ASP.NET:如何在 DEBUG 模式下编译?

我应该为 ASP.net 创建一个 JQuery 服务器控件以便在我的应用程序中最好地使用它吗?

带有 FriendlyUrls 和 debug="false" 的 ASP.NET WebForms 项目在生产中引发 404

本地Debug Asp.net MVC 无法加载css与js

查看模板代码标签 - asp.net mvc - regd