调试模式 C# 应用程序

Debug mode c# application

我想知道在调试模式和发布模式下构建 WF 应用程序时会发生什么情况。

假设我在发布模式下构建了一个 WFA。请问

之间的代码
#if DEBUG
...code...
#endif

在生成的 .exe 文件中构建?我问这个是因为在调试模式下我有一些我希望保密的机密信息。我不希望任何人通过对我的应用程序进行逆向工程来找到该信息。

非常感谢。

否,当您在 release 中构建时,所有块的内容如:#if DEBUG 将不会包含在结果代码中。这是设计使然。

它不会成为已编译应用程序的一部分,将被编译器跳过。您可以在 .net reflector 中验证它(如果您想确定并亲自查看)

检查msdn:#if (C# Reference)

C# 编译器使用的预处理语句。当 C# 编译器遇到 #if 指令,最后是 #endif 指令时,它只会在定义了指定符号的情况下编译指令之间的代码。

所以这意味着,如果您在 Release 模式下构建项目,debug 未定义 sysmbol,因此它们之间的代码不会被执行,也不会成为发布构建的一部分。