Compartir a través de


Depurar aplicaciones en Blend

Si el comportamiento de la aplicación de Blend para Visual Studio no es el esperado o si se producen errores al intentar probar la aplicación, puede haber algún error en la aplicación. Puede ser difícil comprender la causa de un error o saber dónde se encuentra dentro de la aplicación, pero resulta útil entender los tipos de errores con los que se puede encontrar.

Errores de sintaxis

Al compilar la aplicación, los errores de sintaxis se muestran en la pestaña Errores del panel Resultados de Blend o en el panel Lista de errores de Visual Studio.

Los errores de sintaxis se producen cuando el código o lenguaje XAML no cumple las reglas de formato del lenguaje. La descripción del error puede ayudarle a solucionarlo. La descripción especifica también el nombre del archivo y el número de línea en que se produce el error. Entre las causas comunes de errores de sintaxis, figuran las siguientes:

  • Una palabra clave tiene errores ortográficos o el uso de las mayúsculas no es correcto.

  • Faltan las comillas en cadenas de texto.

  • A un elemento XAML le falta una etiqueta de cierre.

  • Un elemento XAML está en una ubicación no permitida. Puede evitar estos errores si edita sus documentos en la vista Diseño en Blend o en Visual Studio.

  • En un archivo de código, una llamada a un método o una función no incluye los parámetros necesarios. Por ejemplo, el método MessageBox.Show() debe tener al menos un parámetro, como una cadena, MessageBox.Show("Hello").

  • En un archivo de código, se asigna una variable de un tipo a un tipo distinto. Por ejemplo, el método MessageBox.Show() puede tener un argumento de cadena, pero no un argumento de entero.

  • En C#, un método que no necesita argumentos podría no tener llaves al final. Por ejemplo, this.InitializeComponent; provocará un error de sintaxis porque la línea correcta es this.InitializeComponent();.

Para obtener información acerca de la sintaxis XAML, vea los temas de información general de los controles individuales enumerados en la Biblioteca de controles de Windows Presentation Foundation y en Controles y cuadros de diálogo de Silverlight en MSDN. Para obtener información sobre la sintaxis de programación, puede buscar palabras clave del código en MSDN.

Errores de compilación

Al compilar la aplicación, los errores de compilación se muestran en la pestaña Errores del panel Resultados de Blend o en el panel Lista de errores de Visual Studio.

Los errores de compilación se producen cuando el sistema de compilación de Blend o Visual Studio no encuentra algo que requiere el proyecto. Por ejemplo, si en el proyecto de Windows Presentation Foundation (WPF) falta una referencia a ensamblados de WPF, puede que aparezca un error del tipo "El nombre 'Window' no existe en el espacio de nombres 'https://schemas.microsoft.com/winfx/2006/xaml/presentation'". Si obtiene este error, puede hacer clic en Agregar referencia en el menú Proyecto para agregar referencias a los siguientes ensamblados WPF de la carpeta "C:\Archivos de programa\Reference Assemblies\Microsoft\Framework\":

  • PresentationCore.dll

  • PresentationFramework.dll

  • WindowsBase.dll

Si continúan apareciendo errores del tipo "El nombre '<miembro>' no existe en el contexto actual", es posible que falte otra referencia de ensamblado o que sea necesario agregar una instrucción using (C#) o Imports (Visual Basic .NET) al código para el espacio de nombres que falta. Para averiguar cuál es el ensamblado o el espacio de nombres necesario, vea en el tema de referencia de MSDN correspondiente al miembro que causa el error.

Entre las otras comunes de errores de compilación, figuran las siguientes:

  • Una palabra clave tiene errores ortográficos o el uso de las mayúsculas no es correcto.

  • No se hace referencia correctamente a una clase en la aplicación. Por ejemplo, si la aplicación usa una clase personalizada que se implementa en un archivo de código .cs o .vb independiente con su propio espacio de nombres, los documentos de la aplicación que usen esa clase personalizada tendrán que incluir una línea como la siguiente, donde FullyQualifiedNamespace es el espacio de nombres del archivo de código:

    xmlns:SampleNamespace="clr-namespace:FullyQualifiedNamespace"
    
  • Las opciones del compilador no están configuradas correctamente o el sistema no es capaz de generar aplicaciones basadas en Microsoft .NET Framework. Si tiene instalado Microsoft .NET Framework y desea compilar la aplicación mediante Blend o Visual Studio, no debería haber ningún problema.

  • No se guardó un archivo antes de intentar compilar el proyecto. Por ejemplo, si usa el panel Eventos JJ171011.6c67bb3b-e8a2-4a63-bad5-54d5c15b04dd(es-es,VS.120).png de Blend para generar un nuevo método de control de eventos en el archivo de código subyacente (abriendo por tanto el archivo de código subyacente en Visual Studio) e intenta compilar el proyecto en Blend sin guardar antes el archivo de código subyacente, recibirá un error que indica que el proyecto no contiene una definición del controlador de eventos.

Errores en tiempo de ejecución

Los errores en tiempo de ejecución se producen cuando la aplicación se compila pero se comporta de forma inesperada al ejecutarla (al presionar F5 en Blend). Los errores en tiempo de ejecución son los más difíciles de identificar porque suelen ser errores lógicos. En ocasiones, se pueden solucionar intentando realizar distintos cambios en el código o en XAML para llegar a entender lo que sucede en segundo plano. No obstante, es más rápido observar qué está pasando en segundo plano examinando el código línea por línea mientras se ejecuta la aplicación.

Para obtener más información, vea Depurar aplicaciones de Blend en Visual Studio.

Entre las causas comunes de errores en tiempo de ejecución, figuran las siguientes:

  • El diseño de los elementos XAML no es correcto o se ha usado un objeto de panel incorrecto para contener otros objetos.

    Para obtener información acerca del diseño, vea Organizar objetos en contenedores de diseño en Blend, o bien vea Diseño e Información general sobre alineación, márgenes y relleno en la sección de WPF de MSDN.

    Un elemento XAML no está enlazado al controlador de eventos correcto. Esto puede suceder si crea muchos métodos de control de eventos y asigna uno incorrecto al elemento XAML. Para ver los controladores de eventos que están asignados a un elemento XAML en un proyecto de WPF abierto en Blend, seleccione el objeto en el panel Objetos y escala de tiempo y, a continuación, haga clic en el botón Eventos del panel Propiedades.

  • Un desencadenador de animación no está configurado correctamente en Blend. Por ejemplo, los guiones gráficos de animación deben iniciarse en cualquier desencadenador para poder detenerlos o pausarlos una vez cargada la aplicación. (Todos los guiones gráficos de animación se inician en el desencadenador Window.Loaded de forma predeterminada, aunque esto se puede modificar).

    Para obtener más información, vea Animar objetos. Para obtener un ejemplo de desencadenadores de animación, vea Crear una animación sencilla.

  • En un archivo de código, una variable hace referencia a un objeto que no existe todavía. Por ejemplo, en un archivo de código subyacente, si hace referencia a un objeto XAML antes de la línea this.InitializeComponent(), obtendrá un error XamlParseException.

  • En un archivo de código, la aplicación se ejecuta con un código inesperado. En esta situación, lo más adecuado es examinar el código mientras realiza la depuración de la aplicación en Visual Studio 2010.

    Para obtener más información, vea Depurar aplicaciones de Blend en Visual Studio.

  • En un archivo de código subyacente, las actualizaciones de la interfaz de usuario (UI) se ejecutan en el mismo subproceso que otra lógica de programación, cuando deberían ejecutarse en subprocesos separados. Por ejemplo, si crea un método de controlador de eventos que actualiza el texto que se muestra en un control Label, realiza otros cálculos y, a continuación, vuelve a actualizar el texto del mismo control Label antes de que se complete el método de controlador de eventos, solo verá la última actualización. Esto ocurre porque la representación de la UI se produce al final del método de control de eventos y todo el procesamiento se realiza en el mismo subproceso, por lo que la aplicación no puede dedicar tiempo durante la ejecución del método para actualizar la UI.

    Para obtener información acerca de cómo escribir aplicaciones de WPF que tengan varios cálculos y actualizaciones de la interfaz de usuario, vea Modelo de subprocesos en la sección de WPF de MSDN.

  • En un método de control de eventos de un archivo de código subyacente, se hace referencia a los elementos de la UI o a sus propiedades antes de que se encuentren disponibles. Por ejemplo, en un método de constructor Window1(), aún no podrá tener acceso a los elementos de interfaz de usuario. En un método de control de eventos OnInitialized(), puede tener acceso a los elementos de la UI, pero no puede examinar propiedades como ActualWidth (ancho real) porque aún no se ha implementado el diseño de los elementos de la UI. En un método de control de eventos OnLoaded(), puede hacer lo que desee con los elementos de interfaz de usuario que existen en el documento XAML.

    Para obtener más información, vea Eventos de duración de objetos en la sección de WPF de MSDN.

Depurar en Visual Studio

Blend es una herramienta de diseño para crear interfaces de usuario avanzadas para aplicaciones basadas en WPF y aplicaciones Microsoft Silverlight. Puede usar Visual Studio para abrir, compilar y depurar proyectos de Blend. Si tiene problemas para depurar aplicaciones con la característica Ejecutar Proyecto (F5) de Blend, use Visual Studio para obtener mensajes de error detallados sobre los errores en tiempo de ejecución.

Para obtener más información, vea Depurar aplicaciones de Blend en Visual Studio.

Depurar problemas de rendimiento

WPF ofrece un conjunto de herramientas de evaluación del rendimiento que le permiten analizar el comportamiento en tiempo de ejecución de la aplicación y determinar cómo puede mejorar el rendimiento.

Para obtener más información, vea las Herrramientas de generación de perfiles para WPF y Optimizar WPF: Rendimiento de aplicaciones en la sección de WPF de MSDN.

Seguimiento de eventos

Los programadores de .NET experimentados pueden agregar código a sus aplicaciones WPF para desencadenar eventos de depuración personalizados que les ayudan a depurar errores más complicados. Esta característica se denomina Seguimiento de eventos para Windows (ETW). La herramienta de creación de perfiles de seguimiento de eventos de WPF usa ETW para el registro de eventos.

Para obtener más información, vea las secciones acerca de "Event Trace" y "PresentationTraceSources" en lasHerramientas de generación de perfiles para WPF en MSDN.

Depurar aplicaciones híbridas

Si tiene una aplicación que usa WPF además de otra tecnología, como la programación de Windows Forms, podría experimentar problemas tales como comportamientos inesperados de superposición, comportamientos de escalado, problemas de control del enfoque, etc.

Para obtener información acerca de cómo depurar aplicaciones híbridas, vea el artículo Solución de problemas de aplicaciones híbridas en la sección de WPF de MSDN.

Seguridad

Mientras se está depurando, la aplicación tiene los mismos permisos de seguridad que cuando la usa otra persona.

Para obtener más información, vea Implementar y publicar aplicaciones en Blend.

Para obtener más información acerca de la seguridad de las aplicaciones de WPF, vea Seguridad (WPF) en la sección de WPF de MSDN.

Obtener ayuda

Si necesita más ayuda para depurar la aplicación de Blend, puede buscar artículos sobre su problema o exponer una pregunta en el Foro de Windows Presentation Foundation o en el Centro de desarrollo de Silverlight.