如何在 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 资源时出错”