仅在使用Visual Studio进行调试时执行代码

问题描述:

仅当我通过Visual Studio的调试工具调试程序时,是否可以运行特定的代码?仅在使用Visual Studio进行调试时执行代码

如果我使用#if DEBUGConditional(“DEBUG”),那么在/ Debug目录中运行.exe时仍会触发代码。

+1

的Visual Studio运行在debug文件夹中的exe过这整个翻译单元的东西不适用,它只是附加一个调试器。条件代码编译为。 – Crowcoder

+0

请参阅以下几个解决方案:http://stackoverflow.com/questions/101806/check-if-application-was-started-from-within-visual-studio – PaulF

#if DEBUG用于条件编译,它不会影响运行时的执行。

改为使用Debugger.IsAttached在运行时分支。

好吧,我终于找到了答案:

如果(Debugger.IsAttached)是正是我需要的。

+0

这只是一个戴的回答评论。 – HimBromBeere

+0

大约在同一时间。伙计们正在追逐点。答案在下一分钟发布。 – sofsntp

为了说清楚,以hashtag开头的语句是预处理器指令。这些指令不在翻译股内;因此这些条件语句在编译的文件中不存在。

编辑看来,对于C#

+0

我会成为一个学生:它是“散列符号”,“英镑符号”或“数字符号”,而不是“哈希标签”。而翻译单位的概念不适用于C#编译器。 – Dai

+0

@戴,我对“哈希符号”有点不正式。但我不知道C#翻译单元的情况。感谢您的输入。 –