Antigua pregunta, pero si no tiene definido un oyente predeterminado, no mostrará un diálogo de mensaje como de costumbre. No he confirmado si realmente dispara y solo me lo comen (sospecho que es el caso) o si simplemente no se dispara.
Pero de cualquier manera no se mostrará el cuadro de diálogo.
A partir de los documentos de DefaultTraceListener
La pantalla del cuadro de mensaje para el método de afirmar y Falla llama depende de la presencia de la DefaultTraceListener. Si el DefaultTraceListener no se encuentra en la colección Listeners, no se muestra el mensaje .
El DefaultTraceListener se puede quitar por el elemento , por el elemento, o llamando al método Clear en la propiedad oyentes (System.Diagnostics.Trace.Listeners.Clear()).
Puede revisar sus oyentes y obtener el tipo mediante el uso de un código, como a continuación:
var listeners = new TraceListener[Debug.Listeners.Count];
Debug.Listeners.CopyTo(listeners, 0);
foreach (var listener in listeners) {
Debug.WriteLine("Name : {0} of type : {1}", listener.Name, listener.GetType());
}
Si usted no tiene uno llamado "defecto", Debug.Assert
fallará sin.
En cuanto a la configuración va, esto va a funcionar asumiendo un detector denominado defecto está disponible:
<system.diagnostics>
<trace autoflush="false">
<listeners>
</listeners>
</trace>
</system.diagnostics>
Esto funciona asumiendo un detector denominado defecto está disponible:
<system.diagnostics>
<trace autoflush="false">
<listeners>
<add name="bigEarsListener" type="System.Diagnostics.TextWriterTraceListener" initializeData="TracingInfo.log"/>
</listeners>
</trace>
</system.diagnostics>
Esto funcionará definimos explícitamente nuestro Predeterminado:
<system.diagnostics>
<trace autoflush="false">
<listeners>
<remove name="Default" />
<add name="Default" type="System.Diagnostics.DefaultTraceListener" />
<add name="bigEarsListener" type="System.Diagnostics.TextWriterTraceListener" initializeData="TracingInfo.log"/>
</listeners>
</trace>
</system.diagnostics>
Esto no funciona:
<system.diagnostics>
<trace autoflush="false">
<listeners>
<remove name="Default" />
<add name="bigEarsListener" type="System.Diagnostics.TextWriterTraceListener" initializeData="TracingInfo.log"/>
</listeners>
</trace>
</system.diagnostics>
Si usted no tiene una sección de diagnóstico en su web.config entonces el defecto podría estar recibiendo eliminado o anulado por alguna extensión VS etc, por lo que la adición de esta sección debe traer de vuelta a un comportamiento esperado.
¿Ha verificado dos veces que no está ejecutando la versión de lanzamiento? – ChrisF
¿Qué le parece abrir su dll/exe con Reflector y ver si la afirmación está realmente en el código? ¿Y su montaje está realmente cargado desde la ubicación que cree que es? Tal vez verifique en otro momento que está usando la versión de depuración. –
@ChrisF: Como dije, sí. Tres veces ... :-) –