Answers:
不,除非您做一些工作,否则不会。
这里的重要部分是DEBUG的真正含义,它是编译器可以检查的一种常量定义。
如果检查项目属性,则在“构建”选项卡下,您会发现三件事:
没有这样的复选框,也没有名称为RELEASE的预定义常数/符号。
但是,您可以轻松地将该名称添加到标有条件编译符号的文本框中,但是在执行此操作之前,请确保将项目配置设置为Release-mode,因为这些设置是针对每个配置的。
因此,基本上,除非您将其添加到文本框中,#if RELEASE
否则在任何配置下都不会产生任何代码。
RELEASE
未定义,但是您可以使用
#if (!DEBUG)
...
#endif
RELEASE
已定义。
不。
在调试配置中,有一个DEBUG
定义的常量(由Visual Studio自动定义),而在发布模式中则没有定义这样的常量。检查构建中的项目设置。
在Project-> Build下选择[Define DEBUG constant] 就像在每个文件的开头包含#define DEBUG。
如果要为发布配置定义一个RELEASE常量,请转到:
#if (RELEASE) [RequireHttps] #endif
我以前从未见过...但是我见过:
#if (DEBUG == FALSE)
和
#if (!DEBUG)
那对你有用吗?
!
,就像您的第二个示例一样,只有操作员才能工作。
“ Pop Catalin”没错。根据构建类型控制定义提供了很大的灵活性。例如,您可以在同一解决方案中都具有“ DEBUG”,“ DEMO”和“ RELEASE”配置。这样就避免了使用两种不同解决方案进行重复编程的需求。
因此,是#if RELEASE
或#if (RELEASE)
与#if DEBUG
定义RELEASE条件编译符号时相同。
以下内容摘自“ Pop Catalin”文章:如果要为发布配置定义RELEASE常量,请转至:*项目属性->生成 *选择发布模式*在条件编译符号文本框中输入:RELEASE
我知道这是一个古老的问题,但是值得一提的是,您可以在DEBUG和RELEASE之外创建自己的配置,例如TEST或UAT。
如果然后在项目属性页面的“构建”选项卡上,然后将“条件编译符号”设置为TEST(例如),则可以使用诸如
#if (DEBUG || TEST )
//Code that will not be executed in RELEASE or UAT
#endif
您可以出于特定原因使用此构造,例如,如果需要,可以使用不同的客户端,例如甚至可以使用整个Web方法。过去,在某些命令导致特定硬件出现问题的情况下,我们也使用了此功能,因此当部署到硬件X时,我们可以为应用配置配置。
为什么不只是
#if RELEASE
#undef DEBUG
#endif
/d:RELEASE
也可以。您也可以将其添加到“发布”配置下的条件编译符号中(项目属性构建选项卡)。
#if !DEBUG
具有相同的功能#if RELEASE
。另外,#if DEBUG
再#else
然后#endif
,如果有不同的代码在运行模式。