visual una símbolos studio punto pila para original necesita mostrar llamadas interrupción interrupcion fuente este encontro distinto depurar depuración deja copia comprobado codigo code bloqueo asp actualmente activará c# .net vb.net visual-studio debugging

c# - una - punto de interrupcion visual studio 2012



Necesita código.NET para ejecutar solo cuando está en configuración de depuración (8)

Además de las directivas #if #endif, también puede usar atributos condicionales. Si marca un método con el atributo

[Conditional("Debug")]

Solo se compilará y ejecutará cuando su aplicación esté integrada en modo de depuración. Como se señaló en el comentario a continuación, estos solo funcionan cuando el método tiene un tipo de devolución de nulo.

Tengo un código que accede a una API en la web. Uno de los parámetros de la API me permite hacerles saber que estoy probando.

Me gustaría establecer solo este parámetro en mi código cuando estoy probando. Actualmente, solo comento el código cuando hago una compilación de lanzamiento.

¿Hay una manera automática de hacer esto basada en la configuración de compilación?


Aquí hay otra publicación con un resultado similar: http://www.bigresource.com/Tracker/Track-vb-lwDKSoETwZ/

Se puede ver una mejor explicación en: http://msdn.microsoft.com/en-us/library/4y6tbswk.aspx

// preprocessor_if.cs #define DEBUG #define MYTEST using System; public class MyClass { static void Main() { #if (DEBUG && !MYTEST) Console.WriteLine("DEBUG is defined"); #elif (!DEBUG && MYTEST) Console.WriteLine("MYTEST is defined"); #elif (DEBUG && MYTEST) Console.WriteLine("DEBUG and MYTEST are defined"); #else Console.WriteLine("DEBUG and MYTEST are not defined"); #endif } }


El siguiente es seguro de usar:

var isDebug = false; #if DEBUG isDebug = System.Diagnostics.Debugger.IsAttached; #endif if (isDebug) { // Do something }


Esto funciona en asp.net:

if (System.Web.HttpContext.Current.IsDebuggingEnabled) //send email to developer; else //send email to customer;

de Rick Strahl @ Detecting-ASPNET-Debug-mode


Tuve el mismo problema y la solución que utilicé fue:

if (System.Diagnostics.Debugger.IsAttached) { // Code here }

Esto significa que técnicamente en la producción puede adjuntar un depurador y obtener esa pieza de código para ejecutar.


sí, envuelva el código en

#if DEBUG // do debug only stuff #else // do non DEBUG stuff #endif

Google para "símbolos de compilación de C #"

Visual Studio define automáticamente DEBUG cuando está en la configuración de depuración. Puede definir cualquier símbolo que desee (consulte las propiedades de su proyecto, la pestaña de compilación). Tenga en cuenta que abusar de las directivas de preprocesador es una mala idea, puede llevar a un código que es muy difícil de leer / mantener.


1: puede usar el atributo Conditional :

[Conditional("DEBUG")] static void Method() { }

2: #if directiva del preprocesador :

#if DEBUG static int testCounter = 0; #endif

3: O método Debug.Write / Debug.WriteLine :

Debug.Write("Something to write in Output window.");

Tenga cuidado con el #if directiva #if ya que puede producir situaciones no deseadas en la versión Release. Por ejemplo, ver:

string sth = null; #if DEBUG sth = "oh, hi!"; #endif Console.WriteLine(sth);

En este caso, la compilación que no es de depuración imprimirá un mensaje en blanco.

Lee mas:

También hay una herramienta, DebugView , que permite capturar información de depuración de aplicaciones externas.


public int Method () { #if DEBUG // do something #endif }