2010-01-05 4 views

Respuesta

6
public static bool IsInVisualStudio 
{ 
    get 
    { 
     bool inIDE = false; 
     string[] args = System.Environment.GetCommandLineArgs(); 
     if (args != null && args.Length > 0) 
     { 
      string prgName = args[0].ToUpper(); 
      inIDE = prgName.EndsWith("VSHOST.EXE"); 
     } 
     return inIDE; 
    } 
} 
+0

if (String.IsNullOrEmpty (args) == false) {...} es más agradable imo :) – Christian

+1

@Christian: 'args' es una matriz de cadenas, no una cadena. –

+0

Además, una ecuación para verdadero o falso es posiblemente demasiado verbosa en comparación con if (String.IsNullOrEmpty()) o if (! String.NullOrEmpty()). Aunque un poco fuera del registro para esta pregunta. – Webleeuw

29
if (System.Diagnostics.Debugger.IsAttached) { 
    // You are debugging 
} 
+0

Entonces, ¿qué ocurre cuando el usuario ejecuta su programa y luego le agrega un depurador? –

+0

Luego el usuario ejecuta la aplicación. con un IDE (suponiendo que todos los depuradores son parte de un IDE). Supongo que al aficionado le gustaría saber si hay un depurador ejecutándose, no necesariamente si hay un IDE ejecutándose. – Webleeuw

+0

Hasta donde yo sé, la única forma de saber si una aplicación se está ejecutando, p. Visual Studio, ya sea en modo de depuración o no (puede ejecutar una aplicación sin depurador de VS, como la mayoría de la gente sabe), es la solución de mkus. – Webleeuw

Cuestiones relacionadas