2012-10-06 20 views
6

Estoy escribiendo un código C# simple, pero las partes donde aparece Debug.WriteLine("..");, se saltan. Por ejemplo:Debug.WriteLine omitido durante la depuración

WebClient wc = new WebClient(); 

     wc.Encoding = System.Text.Encoding.GetEncoding("ISO-8859-1"); 
     wc.DownloadStringCompleted += new DownloadStringCompletedEventHandler(SearchWordsDownloaded); 

     Debug.WriteLine("test"); 
     wc.DownloadStringAsync(new Uri("SomeURL")); 

¿Por qué está sucediendo eso?

+0

'Flush' * podría * resolver el problema. También puede establecer 'AutoFlush' en' true' antes de escribir cosas de depuración. – dialer

+0

¿Está diciendo que la línea se ignora al pasar por las líneas de código, o que la "prueba" no se está enviando a su destino configurado? –

+1

No hay color aquí en el WP7 SDK. @Cory, se omite mientras paso en el modo de depuración y también cuando lo dejo funcionar. – QKL

Respuesta

1

La única manera en que se puede omitir es ejecutarlo en versión.

Intente limpiar la solución, y asegúrese de que esté en modo de depuración y agregue un punto de interrupción en este segmento de código y presione F5.

+0

No es para mí, vea la respuesta anterior sobre el símbolo de compilación de depuración – userSteve

7

Estaba viendo esto - Se saltaron las instrucciones Debug.WriteLine() para una compilación de depuración con el depurador adjunto. No estoy seguro de por qué, pero el símbolo de compilación DEBUG no se estaba configurando. Vaya a la página de propiedades del proyecto, a la sección de compilación, y dentro del campo 'Símbolos de compilación condicional' ingrese 'DEPURAR' (sin comillas). Eso causó que el depurador comenzara a ingresar declaraciones Debug nuevamente.

+0

Esta es exactamente la respuesta que funcionó para mí. GRACIAS. ¿Alguien sabe las implicaciones de agregar el símbolo de compilación DEBUG al construir una versión de lanzamiento? – userSteve

+1

Cualquier llamada a Debug.Foo() permanecerá en el código compilado. Sin el símbolo DEBUG esas llamadas se eliminan (no se convierten en el ensamblado compilado). Entonces, aunque cosas como Debug.WriteLine() probablemente no harán nada (porque no tiene dónde escribir), Debug.Assert() por ejemplo probablemente ejecutará la aserción y arrojará una excepción si falla la aserción. – redcalx

0

He tenido que omitir las sentencias Debug.Writeline si la plataforma Active Solution está configurada en x86 o x64. Parece que solo pueden ser afectados si su Configuration Manager está configurado en "Cualquier CPU"

Cuestiones relacionadas