【问题标题】:Way to determine whether executing in IDE or not? [duplicate]确定是否在IDE中执行的方法? [复制]
【发布时间】:2013-03-08 11:18:40
【问题描述】:

C#/VBVisual Studio 2010中,代码中有没有办法确定程序当前是否在IDE中运行?

eg. If ProgramRunningInIDE Then MessageBox.Show exc.Message

【问题讨论】:

  • 或者直接看本页右侧的相关列表
  • 我相信这对#if DEBUG很有用。
  • @IAbstract,如果您在发布配置中运行,则不是这样。
  • @Morrison:一旦我遵循了一连串的欺骗问题,我学到了一些新东西。

标签: c# vb.net visual-studio-2010 ide conditional-compilation


【解决方案1】:

您可以检查调试器是否附加:

System.Diagnostics.Debugger.IsAttached

这基本上做同样的事情。

【讨论】:

  • 如果在 IDE 中但处于发布模式,这是否返回 true?
  • @SteveSmith 从技术上讲,即使在调试模式下它也可以返回 false,只要没有附加调试器。调试器也可以附加到发布版本,在这种情况下,这将返回 true。
【解决方案2】:

您可以使用IsInDesignMode 属性。但在某些情况下它并不准确,因此您可能还需要查看UsageMode

public static bool IsRunningInIdeContext
{
    get {
        if (DesignerProperties.IsInDesignMode)
            return true;
        return LicenseManager.UsageMode == LicenseUsageMode.Designtime;
    }
}

【讨论】:

  • IsInDesignMode 可以被控件(在库中)用来了解它是托管在设计器(visual studio)还是运行的应用程序中,但它与检测应用程序是否具有无关是否被 IDE 启动。 IsInDesignMode 将仅对已由 IDE 实例化的控件返回 true,而不是在应用程序由 IDE 启动时返回。
  • 那么请在您的问题中澄清这一点。这几乎就是我所理解的“程序当前正在 IDE 中运行”。
  • @fjdumont 在设计期间,您的程序实际上并没有运行,是吗?
猜你喜欢
  • 2019-02-21
  • 1970-01-01
  • 1970-01-01
  • 2020-11-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-24
  • 1970-01-01
相关资源
最近更新 更多