2010-01-26 9 views
16

Actualmente estoy desarrollando una aplicación de C# que tiene su propio registro. Cuando se lanzan excepciones, la excepción se guarda en una lista que puede ser vista por el usuario a través de una vista de lista. Cuando el usuario hace clic en una excepción en la vista de lista, el trazo de la pila de la excepción se muestra en un cuadro de texto. Pero incluso cuando estoy ejecutando el programa en una máquina remota, el seguimiento de pila muestra las rutas de archivos a los archivos fuente originales de la máquina donde se compiló la aplicación.No mostrar las rutas de archivos de la máquina de compilación en el seguimiento de la pila

ej .:

at C:\Folder1\Folder2\Class1.cs:81 
at C:\Folder1\Folder2\Class2.cs:65 
at C:\Folder1\Folder1\Class3.cs:21 

mostrando sólo los archivos de origen sin carpetas estaría bien ...

¿Cómo puedo cambiar este comportamiento?

¿Hay alguna solución nativa? ¿O simplemente tengo que hacer algo de manipulación de cadenas?

+0

¿Cómo se ve el código de registro? – ChrisF

+0

Simplemente filtra la ruta con una expresión Regex. O Path.GetFileName(). –

Respuesta

5

Las rutas de archivos se incluyen en los archivos "program database" (.pdb). Dichos archivos se crean durante la compilación y las rutas en estos archivos son como en la máquina de compilación.

Puede eliminar los archivos .pdb de su instalación, pero de esta forma su rastro de pila será la mitad de interesante que ahora, ya que no le indicará la línea en la que ocurrió el error. Normalmente, no ejecuta el código en el entorno de producción con archivos Pdb adjuntos.

Si desea mantener el "interesante seguimiento de la pila", puede considerar realizar un reemplazo de cadena de nombres de carpeta, después de haber llamado al exceptionObject.toString().

+0

Gracias =). Funcionó de esta manera. – Emiswelt

Cuestiones relacionadas