调试模式c#应用程序

调试模式c#应用程序,c#,debugging,release,C#,Debugging,Release,我想知道在调试模式和发布模式下构建WF应用程序时会发生什么 让我们假设我已经在发布模式下构建了一个WFA。代码将在 #if DEBUG ...code... #endif 是否在生成的.exe文件中生成?我这样问是因为在调试模式下,我有一些机密信息,我更愿意保密。我不希望任何人反向工程我的应用程序,以找到这些信息 非常感谢。否当您在版本中构建时,所有块(如:#if DEBUG)的内容都不会包含在生成的代码中。这是经过设计的。它不是已编译应用程序的一部分,编译器将跳过它。您可以在中进行验证,即(

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

让我们假设我已经在发布模式下构建了一个WFA。代码将在

#if DEBUG
...code...
#endif
是否在生成的.exe文件中生成?我这样问是因为在调试模式下,我有一些机密信息,我更愿意保密。我不希望任何人反向工程我的应用程序,以找到这些信息


非常感谢。

否当您在
版本中构建时,所有块(如:
#if DEBUG
)的内容都不会包含在生成的代码中。这是经过设计的。

它不是已编译应用程序的一部分,编译器将跳过它。您可以在中进行验证,即(如果您想亲自确认并查看)

检查msdn:

C#编译器使用的预处理状态。当C#编译器遇到一个#if指令,随后是一个#endif指令时,它将仅在定义了指定符号的情况下编译指令之间的代码


这意味着,如果您在
Release
模式
debug
sysmbol中构建项目,那么这两个模式之间的代码不会被执行,也不是发布版本的一部分。

我只是纠正了一点,这不是通过设计,而是C编译器的工作方式,因为编译器使用的预处理指令。。。。但我这边是+1