是否存在破坏了将其从其中删除的目的的事实<compilation>
来自MSDN C# Compiler Options
要打开调试,编译器上的标志/debug
不是/define:Debug=True
/debug :指示编译器发出调试信息。
/define :定义预处理器符号。
因此,当您定义时,Debug=True
您只会使这种代码情况成为现实:
#if DEBUG == true
// Compile what is inside here !
#endif
除非您在上面的/define:Debug=True
代码中手动包含它们,否则不会添加任何额外的调试信息。
测试页面
我使用以下代码进行测试,看看会发生什么。
txtDebug.Text = HttpContext.Current.IsDebuggingEnabled.ToString();
#if DEBUG
txtDebug.Text += "<br>defined Debug is on";
#endif
#if DEBUG == true
txtDebug.Text += "<br>defined Debug = true is on";
#endif
结果 1
现在如果debug="false"
andcompilerOptions="/define:Debug=True"
结果是
错误
定义 Debug = true 开启
结果 2
如果debug="true"
和compilerOptions="/define:Debug=True"
结果是
true
已定义 Debug 已开启 已
定义 Debug = true 已开启
结果 3
现在我再做一个测试,我在 web.config 上添加了这一行
<compiler language="c#;cs;csharp" extension=".cs"
compilerOptions="/define:Debug=True /D:DEBUG,TESTFLAG"
type="Microsoft.CSharp.CSharpCodeProvider, System,
Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
warningLevel="4" />
结果与debug=false
假(调试为假)
定义调试打开(但定义的调试现在运行)
定义调试=真打开(这也是运行)
测试标志(但定义的额外标志也运行)
MSDN
查看/define (预处理器定义)的 MSDN我看声明
/define:Debug=True
仅适用于这种代码情况
#if DEBUG == true
txtDebug.Text += "<br>defined Debug = true is on";
#endif