如何在 Win 7 Visual Studio 2012 的 C# 中禁用#if DEBUG

Posted

技术标签:

【中文标题】如何在 Win 7 Visual Studio 2012 的 C# 中禁用#if DEBUG【英文标题】:how to disable #if DEBUG in C# at Win 7 visual studio 2012 【发布时间】:2014-02-24 19:14:23 【问题描述】:

我正在 Win 7 Visual Studio 2012 中使用 C#。

我有#if DEBUG,我想禁用它们。但是,当我在 Visual Studio 中使用“不调试启动”运行 C# 时,#if DEBUG 仍然有效。

任何帮助将不胜感激。


更新

当我在发布时构建我的代码时,#if DEBUG 代码仍然存在,即使它们也没有执行?我需要手动删除它们吗?我需要在发布后将它们删除。谢谢!

【问题讨论】:

【参考方案1】:

将您的构建配置从 Debug 更改为 Release。

【讨论】:

当我发布我的代码时,#if DEBUG 代码仍然存在,即使它们也没有执行?我需要手动删除它们吗?我需要在发布后将它们删除。谢谢! #if DEBUG 确实检查编译标志。当您处于调试模式时,会设置该标志。但是,在发布模式下,该标志未设置,因此包装在 #if DEBUG 语句中的代码将不会执行。 我知道这一点。但是,如果我想从文件中删除“#if DEBUG”怎么办?当我交付 c# 代码时,我不希望其他人看到它们。谢谢!【参考方案2】:

我假设您已经根据“发布”构建配置文件进行构建,因此我将解释如何取消设置 DEBUG 常量以进行发布。

右键单击项目并在 Build 部分中从“定义调试常量”中删除标志。 应该只为“发布”构建配置文件删除此标志,并为“调试”构建配置文件设置。

当您选择“Start without debug”时,您并不是要为发布而构建,而只是不要将调试器附加到进程。

这些是 3 个不同但相互关联的东西:构建的配置文件(调试/发布)、启动或不附加调试器到进程以及设置/取消设置“定义 DEBUG/TRACE 常量”。

【讨论】:

【参考方案3】:

"Start without debugging" only表示VS不会将调试器附加到正在运行的进程;它不会改变其他任何东西。您可能正在使用 Debug 配置运行 - 如果您想在 Release 中编译,您应该从工具栏的下拉列表中选择 Release,您当前应该在其中看到一个设置为 Debug 的下拉列表。

Visual Studio 会为您的项目创建这些配置以启动,这些配置控制设置的预处理器标志,以及一堆其他配置(使用多少优化等)。您可以根据需要编辑它们,甚至可以创建新的。

【讨论】:

以上是关于如何在 Win 7 Visual Studio 2012 的 C# 中禁用#if DEBUG的主要内容,如果未能解决你的问题,请参考以下文章

Visual Studio 已停止工作 - 在 Win 7 上

visual studio 2008有64位的吗?我win 7 x64系统,怎么装 vs2008

Win 7 x64 + Visual Studio 2015为WinXP编译可执行程序

Visual Studio、Windows 7 x64 中的“生成 Win32 资源时出错”

如何使用Visual Studio 14 2015 x64构建OpenEXR 2.2?

如何正确安装Visual Studio 2017企业版