代码之家  ›  专栏  ›  技术社区  ›  cordialgerm

以编程方式确定.NET WinForms应用程序是否通过调试器启动

  •  4
  • cordialgerm  · 技术社区  · 15 年前

    我想知道是否有一种在运行时确定应用程序是通过调试器启动还是通过启动已安装的应用程序版本的编程方法。我的应用程序当前正在通过ClickOnce部署。

    当应用程序在调试模式与生产模式下运行时,我希望更改某些设置。

    我知道构建配置解决方案——我很好奇是否有一种程序化的方法来确定这些信息

    谢谢

    4 回复  |  直到 15 年前
        1
  •  10
  •   Oded    15 年前

    使用 Debugger.IsAttached .

    它是一个静态方法 System.Diagnostics 命名空间,正如您从名称中推断的那样,如果附加了调试器(无论是否附加了调试器),它将返回true。 之后 是否启动)。

    你可以把这个放在应用入口点( main )为了查明应用程序是否是在连接了调试器的情况下启动的,但请记住,可以稍后再连接它。

        2
  •  4
  •   matiash    15 年前

    如前所述,您可以使用 Debugger.IsAttached . 但是,请注意,这并不一定意味着应用程序 推出 通过调试器,它可能已经正常启动,然后在进程上附加了一个调试器(我不知道这种差异是否与您相关)。

        3
  •  1
  •   Aaron G    15 年前

    要判断它是否已在vs调试器中启动,请执行以下操作:

    if(system.appdomain.currentdomain.domainmanager.toString().toLower().contains(“vshost”)==true)

        4
  •  0
  •   GvS    15 年前

    您可以使用: Debugger.IsAttached

    这个 Debugger 班级是一个值得一看的班级。里面有一些好吃的东西。