调试模式c#应用程序

时间:2015-02-13 10:53:12

标签: c# debugging release

我想知道当我在调试模式下以及处于发布模式时构建WF应用程序时会发生什么。

假设我在发布模式下构建了WFA。

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

在生成的.exe文件中构建?我问这个是因为在调试模式下我有一些机密信息,我宁愿保密。我不希望任何人反向设计我的应用程序来查找该信息。

非常感谢。

3 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:3)

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

答案 2 :(得分:2)

检查msdn:#if (C# Reference)

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

所以这意味着如果你在Release模式下构建你的项目debug没有定义sysmbol,那么它之间的代码就不会被执行而不是发布版本的一部分。