在Visual Studio中如何为调试版本和发布版本添加特殊情况?

6
我正在进行一个C#项目,想知道如何在调试模式下添加特殊情况。在Debug Mode下,我可以访问一些在发布版本中通常无法访问的资源。
以下是一直发生的问题:我将管理员工具内置到程序中,仅用于调试,例如一个名为“测试”的按钮,可以放入任何我想要的代码。我经常忘记隐藏该按钮并将其发布给客户端。我希望只有在运行于调试模式下时才会有此测试按钮,而其他时间没有。
这将启动我的管理员工具。
rpg_Admin.Visible = true;

这将关闭我的管理工具

rpg_Admin.Visible = false;

有简单的方法来做到这一点吗?

if Debug Mode
    rpg_Admin.Visible = true

或者可能是在 Visual Studio 中运行时

rpg_Admin.Visible = true

但当它独立运行时

rpg_Admin.Visible = false

我正在使用Visual Studio 2010运行。
谢谢。

尊敬的管理员:我认为那不是同一个问题。虽然相似,但并非完全重复。 - Tim Long
2个回答

7

使用您的示例,添加一些#if / #else / #endif指令,如下所示:

#if DEBUG
    rpg_Admin.Visible = true;
#else
    rpg_Admin.Visible = false;
#endif

您还可以将 System.Diagnostics.ConditionalAttribute 属性应用于仅在调试版本中使用的任何代码。这将完全从发布构建中删除任何不必要的代码。 例如:

[Conditional("DEBUG")]
public static void MyDebugOnlyMethod()
    {
    }

这正是我一直在寻找的!我不知道它会这么容易。 - David Eaton
好的,直到你知道如何做它,没有什么是容易的!这就是为什么 Stack Overflow 如此棒。 - Tim Long

1
将调试代码用#ifdef DEBUG/#endif包装起来:
#ifdef DEBUG

// debug only code here

#endif

嗯,由于某些原因,#ifdef 不受欢迎,它给我带来了大量的错误。这个东西有特殊的位置吗?我是在我的窗体中的 InitializeComponent() 后立即调用它的。 - David Eaton
你应该能够在任何地方使用#ifdef...请粘贴你的代码。 - Z .

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接