Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Este artículo le guía a través de los pasos necesarios para establecer diversos objetivos de implementación y depuración.
Microsoft Visual Studio permite implementar y depurar aplicaciones para la Plataforma universal de Windows (UWP) en una variedad de dispositivos Windows 10. Visual Studio controlará el proceso de compilación y registro de la aplicación en el dispositivo de destino.
Selección de un destino de implementación
Para elegir un destino, vaya a la lista desplegable Debug target (Destino de depuración) junto al botón Iniciar depuración y elija el destino en el que quiere implementar la aplicación. Una vez seleccionado el destino, seleccione Iniciar depuración (F5) para implementar y depurar en ese destino, o seleccione Ctrl+F5 para simplemente implementar en ese destino.
- Simulador desplegará la aplicación en un entorno simulado en la máquina de desarrollo actual. Esta opción solo está disponible si la plataforma de destino mínima de la aplicación. La versión es menor o igual que el sistema operativo en la máquina de desarrollo.
- máquina local implementará la aplicación en la máquina de desarrollo actual. Esta opción solo está disponible si la plataforma de destino mínima de la aplicación. La versión es menor o igual que el sistema operativo en la máquina de desarrollo.
- La máquina remota le permitirá especificar un destino remoto para implementar la aplicación. Puede encontrar más información sobre la implementación en una máquina remota en Especificación de un dispositivo remoto.
- El dispositivo implementará la aplicación en un dispositivo conectado USB. El dispositivo debe estar desbloqueado para desarrolladores y tener la pantalla desbloqueada.
- Un emulador de destino arrancará e implementará la aplicación en el mismo emulador con la configuración especificada en el nombre. Los emuladores solo están disponibles en máquinas habilitadas para Hyper-V que ejecutan Windows 8.1 o posterior.
Depuración de aplicaciones implementadas
Visual Studio también puede asociarse a cualquier proceso de aplicación para UWP en ejecución seleccionando Depurary, a continuación, Asociar al proceso. La conexión a un proceso en ejecución no requiere el proyecto original de Visual Studio, pero cargar los símbolos del proceso será de gran ayuda al depurar un proceso del cual no se dispone del código original.
Además, cualquier paquete de aplicación instalado se puede adjuntar y depurar seleccionando Depurar, Otrosy, a continuación, Depurar paquetes de aplicaciones instalados.
Al seleccionar No iniciar, pero depurar mi código cuando se inicia hará que el depurador de Visual Studio se asocie a la aplicación para UWP al iniciarlo en un momento personalizado. Es una forma eficaz de depurar rutas de control desde diferentes métodos de inicio, como la activación de protocolos con parámetros personalizados.
Las aplicaciones para UWP se pueden desarrollar y compilar en Windows 8.1 o posterior, pero requieren que Se ejecute Windows 10. Si estás desarrollando una aplicación para UWP en un equipo con Windows 8.1, puedes depurar de forma remota una aplicación para UWP que se ejecuta en otro dispositivo Windows 10, siempre que el host y el equipo de destino estén en la misma LAN. Para ello, descargue e instale herramientas remotas para Visual Studio en ambos equipos. La versión instalada debe coincidir con la versión existente de Visual Studio que ha instalado y la arquitectura que seleccione (x86, x64) también debe coincidir con la de la aplicación de destino.
Diseño del paquete
A partir de Visual Studio 2015 Update 3, hemos agregado la opción para que los desarrolladores especifiquen la ruta de diseño para sus aplicaciones para UWP. Esto determina dónde se copia el diseño del paquete en el disco al compilar la aplicación. De forma predeterminada, esta propiedad se establece en relación con el directorio raíz del proyecto. Si no modifica esta propiedad, el comportamiento seguirá siendo el mismo que el de las versiones anteriores de Visual Studio.
Esta propiedad se puede modificar en las propiedades de depuración del proyecto.
Si quiere incluir todos los archivos de diseño en el paquete al crear un paquete para la aplicación, debe agregar la propiedad <IncludeLayoutFilesInPackage>true</IncludeLayoutFilesInPackage>
del proyecto .
Para agregar esta propiedad:
- Haga clic con el botón derecho en el proyecto y seleccione Descargar proyecto.
- Haga clic con el botón derecho en el proyecto y seleccione Editar [nombredeproyecto].xxproj (.xxproj cambiará en función del lenguaje del proyecto).
- Agregue la propiedad y vuelva a cargar el proyecto.
Especificación de un dispositivo remoto
C# y Microsoft Visual Basic
Para especificar una máquina remota para aplicaciones de C# o Microsoft Visual Basic, seleccione Máquina remota en la lista desplegable de destino de depuración. Aparecerá el cuadro de diálogo Conexiones remotas , que le permitirá especificar una dirección IP o seleccionar un dispositivo detectado. De forma predeterminada, el modo de autenticación Universal está seleccionado. Para determinar qué modo de autenticación se va a usar, consulte Modos de autenticación.
Para volver a este cuadro de diálogo, puede abrir las propiedades del proyecto y ir a la pestaña Depurar. Desde allí, seleccione Buscar junto a máquina remota:
Para implementar una aplicación en un equipo remoto anterior a Creators Update, también tendrá que descargar e instalar Las herramientas remotas de Visual Studio en el equipo de destino. Para obtener instrucciones completas, consulta: instrucciones del PC remoto. Sin embargo, a partir de la Creators Update, el PC también admite la implementación remota.
C++ y JavaScript
Para especificar un destino de máquina remota para una aplicación para UWP de C++ o JavaScript:
- En el Explorador de soluciones, haga clic con el botón derecho en el proyecto y, a continuación, haga clic en Propiedades.
- Vaya a Configuración de depuración y, en Depurador para iniciar, seleccione Máquina Remota.
- Escriba el nombre de la máquina (o haga clic en Localizar para encontrar uno) y, a continuación, establezca la propiedad Tipo de Autenticación.
Una vez especificada la máquina, puede seleccionar Remote Machine en la lista desplegable de destino de depuración para volver a esa máquina especificada. Solo se puede seleccionar una máquina remota a la vez.
Instrucciones para el PC remoto
Nota:
Estas instrucciones solo son necesarias para versiones anteriores de Windows 10. A partir de la Creators Update, un ordenador se puede tratar como una Xbox. Es decir, al habilitar la detección de dispositivos en el menú del modo de desarrollador del PC y utilizar la autenticación universal para el emparejamiento de PIN y conexión con el PC.
Para realizar la implementación en un equipo remoto anterior a Creators Update, el equipo de destino debe tener instaladas las herramientas remotas de Visual Studio. El equipo remoto también debe ejecutar una versión de Windows que sea mayor o igual a la propiedad Min. Versión de la plataforma de destino de tus aplicaciones
Para ello, busque Depurador Remoto en el menú Inicio, ábralo y, si se le solicita, permita al depurador configurar la configuración del firewall. De forma predeterminada, el depurador se inicia con la autenticación de Windows. Esto requerirá credenciales de usuario si el usuario que ha iniciado sesión no es el mismo en ambos equipos.
Para cambiarlo a
Para obtener más información, consulte la página del Centro de Descargas de Visual Studio .
Transmisión de argumentos de depuración en la línea de comandos
** En Visual Studio 2019, puedes pasar argumentos de depuración de la línea de comandos al iniciar la depuración de aplicaciones UWP. Puede acceder a los argumentos de depuración de la línea de comandos desde el parámetro args en el método OnLaunched de la clase Application. Para especificar argumentos de depuración de línea de comando, abra las propiedades del proyecto y vaya a la pestaña Depurar.
Nota:
Esto está disponible en Visual Studio 2017 (versión 15.1) para C#, VB y C++. JavaScript está disponible en versiones posteriores. Los argumentos de depuración de línea de comandos están disponibles para todos los tipos de implementación, excepto para el simulador.
En el caso de los proyectos de C# y VB para UWP, verá un campo de argumentos de línea de comandos: debajo de opciones de inicio.
En el caso de los proyectos de UWP de C++ y JS, verás argumentos de línea de comandos como un campo en las propiedades de depuración de .
Una vez especificados los argumentos de la línea de comandos, puede acceder al valor del argumento en el método OnLaunched de la aplicación. El objeto
Modos de autenticación
Hay tres modos de autenticación para la implementación remota de máquinas:
- Universal (Protocolo sin cifrar): use este modo de autenticación siempre que se implemente en un dispositivo remoto. Actualmente, esto es para dispositivos IoT, dispositivos Xbox y dispositivos HoloLens, así como equipos con Windows versión 1703 (Creators Update) o posterior. El protocolo universal (protocolo sin cifrar) solo debe usarse en redes de confianza. La conexión de depuración es vulnerable a usuarios malintencionados que podrían interceptar y cambiar los datos que se pasan entre la máquina de desarrollo y la máquina remota.
- Windows: este modo de autenticación solo está pensado para usarse para un equipo remoto (escritorio o portátil) que ejecute visual Studio Remote Tools. Use este modo de autenticación cuando tenga acceso a las credenciales del usuario que inició sesión en la máquina de destino. Este es el canal más seguro para la implementación remota.
- Ninguno: este modo de autenticación solo está pensado para usarse para un equipo remoto (escritorio o portátil) que ejecuta las Herramientas remotas de Visual Studio. Utilice este modo de autenticación cuando tenga un entorno de prueba configurado que tenga una cuenta de prueba conectada y no pueda introducir las credenciales. Asegúrese de que la configuración del depurador remoto esté establecida para no aceptar ninguna autenticación.
Opciones avanzadas de implementación remota
A partir del lanzamiento de Visual Studio 2015 Update 3 y la actualización de aniversario de Windows 10, hay nuevas opciones avanzadas de implementación remota para determinados dispositivos Windows 10. Las opciones avanzadas de implementación remota se pueden encontrar para las propiedades del proyecto en el menú de Depuración.
Las nuevas propiedades incluyen:
- Tipo de implementación
- Ruta de registro de paquetes
- Mantener todos los archivos en el dispositivo, incluso aquellos que ya no forman parte del diseño
Requisitos
Para usar las opciones avanzadas de implementación remota, debe cumplir los siguientes requisitos:
- Tener instalado Visual Studio 2015 Update 3 o alguna versión posterior de Visual Studio con Windows 10 Tools 1.4.1 o posterior (que incluye el SDK de actualización de aniversario de Windows 10) Se recomienda usar la versión más reciente de Visual Studio con actualizaciones para asegurarse de obtener todas las características de desarrollo y seguridad más recientes.
- Establecer como destino un dispositivo remoto Windows 10 Anniversary Update xbox o un equipo con Windows 10 Creators Update
- Uso del modo de autenticación universal
Páginas de propiedades
Para una aplicación para UWP de C# o Visual Basic, la página de propiedades tendrá un aspecto similar al siguiente.
Para una aplicación para UWP de C++, la página de propiedades será similar a la siguiente.
Copiar archivos en el dispositivo
Copiar archivos en el dispositivo transferirá físicamente los archivos a través de la red al dispositivo remoto. Copiará y registrará el diseño del paquete en la carpeta de Layout de la ruta de acceso . Visual Studio mantendrá los archivos que se copian en el dispositivo sincronizados con los archivos del proyecto de Visual Studio; sin embargo, hay una opción para mantener todos los archivos en el dispositivo, incluso aquellos que ya no forman parte del diseño. Seleccionar esta opción significa que los archivos que se copiaron anteriormente en el dispositivo remoto, pero que ya no forman parte del proyecto, permanecerán en el dispositivo remoto.
La ruta de acceso de registro del paquete especificada cuando tú copias archivos en el dispositivo es la ubicación física en el dispositivo remoto donde se copian los archivos. Esta ruta se puede especificar como cualquier ruta relativa. La ubicación en la que se implementan los archivos será relativa a una raíz de archivos de desarrollo que variará en función del dispositivo de destino. Especificar esta ruta de acceso es útil para varios desarrolladores que comparten el mismo dispositivo y trabajan en paquetes con cierta varianza de compilación.
Nota:
Copiar archivos en el dispositivo actualmente se admite en Xbox con Windows 10 Anniversary Update y en PCs con Windows 10 Creators Update.
En el dispositivo remoto, el diseño se copia en la siguiente ubicación predeterminada: \\MY-DEVKIT\DevelopmentFiles\PACKAGE-REGISTRATION-PATH
Registro del diseño desde la red
Cuando decida registrar el diseño desde la red, puede compilar el diseño del paquete en un recurso compartido de red y, a continuación, registrar el diseño en el dispositivo remoto directamente desde la red. Esto requiere que especifique una ruta de acceso de carpeta de diseño (un recurso compartido de red) al que se pueda acceder desde el dispositivo remoto. La ruta de acceso de la propiedad Layout es la ruta establecida en relación con el equipo que ejecuta Visual Studio, mientras que la ruta de acceso de la propiedad de registro del paquete es la misma ruta, pero especificada en relación con el dispositivo remoto.
Para registrar correctamente el diseño desde la red, primero debe realizar ruta de acceso de la carpeta Layout una carpeta de red compartida. Para ello, haga clic con el botón derecho en la carpeta en el Explorador de archivos, seleccione Compartir con > personas específicas y, a continuación, elija los usuarios con los que desea compartir la carpeta. Cuando intentes registrar el diseño desde la red, se te pedirán credenciales para asegurarte de que te registras como usuario con acceso al recurso compartido.
Para obtener ayuda con esto, consulte los ejemplos siguientes:
Ejemplo 1 (carpeta de diseño local, accesible como recurso compartido de red):
-
ruta de acceso de la carpeta Layout =
D:\Layouts\App1
-
ruta de acceso de registro del paquete =
\\NETWORK-SHARE\Layouts\App1
-
ruta de acceso de la carpeta Layout =
Ejemplo 2 (carpeta de diseño de red):
-
ruta de acceso de la carpeta Layout =
\\NETWORK-SHARE\Layouts\App1
-
ruta de acceso de registro del paquete =
\\NETWORK-SHARE\Layouts\App1
-
ruta de acceso de la carpeta Layout =
Cuando registre por primera vez el diseño desde la red, las credenciales se almacenarán en caché en el dispositivo de destino, por lo que no es necesario iniciar sesión repetidamente. Para quitar las credenciales almacenadas en caché, puedes usar la herramientaWinAppDeployCmd.exe del SDK de Windows 10 con el comando deletecreds .
No se puede seleccionar conservar todos los archivos en el dispositivo al registrar el diseño desde la red porque no se copian archivos en el dispositivo remoto.
Nota:
El diseño de registro de la red es actualmente compatible en Xbox con Windows 10 Anniversary Update y en PCs con Windows 10 Creators Update.
En el dispositivo remoto, el diseño se registra en la siguiente ubicación predeterminada en función de la familia de dispositivos: Xbox: \\MY-DEVKIT\DevelopmentFiles\XrfsFiles
- esto es un enlace simbólico a la ruta de registro del paquete. El PC no usa un enlace simbólico y, en su lugar, registra directamente la ruta de registro del paquete.
Opciones de depuración
En Windows 10, el rendimiento de inicio de las aplicaciones para UWP se mejora iniciando de forma proactiva y, a continuación, suspendiendo las aplicaciones en una técnica denominada inicio previo. Muchas aplicaciones no tendrán que hacer nada especial para funcionar en este modo, pero es posible que algunas aplicaciones necesiten ajustar su comportamiento. Para ayudar a depurar cualquier problema en estos caminos del código, puede iniciar la depuración de la aplicación desde Visual Studio en modo pre-lanzamiento.
La depuración se admite desde un proyecto de Visual Studio (depuración:>otros destinos de depuración:>depuración del inicio previo de aplicaciones universales de Windows) y para las aplicaciones ya instaladas en el machine (Depurar ->otros destinos de depuración ->Depurar paquete de aplicaciones instalado activando la casilla Activar aplicación con inicio previo). Para obtener más información, consulta Depurar inicio previo de UWP.
Puede establecer las siguientes opciones de implementación en la página de propiedades de depuración del proyecto de inicio.
Permitir el bucle de retorno de la red local
Por motivos de seguridad, no se permite que una aplicación para UWP instalada de la manera estándar realice llamadas de red al dispositivo en el que está instalada. De forma predeterminada, la implementación de Visual Studio crea una exención de esta regla para la aplicación implementada. Esta exención le permite probar los procedimientos de comunicación en una sola máquina. Antes de enviar la aplicación a Microsoft Store, debes probar la aplicación sin la exención.
Para quitar la exención de bucle invertido de red de la aplicación:
- En la página de propiedades de C# y Visual Basic Depurar, desactive la casilla Permitir bucle de retorno de red local.
- En la página de propiedades JavaScript y C++ Depuración, establezca el valor Permitir bucle invertido de red local a No.
No iniciar, pero depurar mi código cuando se inicia / Iniciar aplicación
Para configurar la implementación para iniciar automáticamente una sesión de depuración cuando se inicia la aplicación:
- En la página de propiedades Debug de C# y Visual Basic
, active la casilla No iniciar, pero depure mi código cuando se inicie . - En la página de propiedades de JavaScript y C++ Depuración, establezca el valor de Launch Application en Sí.
- En la página de propiedades Debug de C# y Visual Basic
Símbolos
Los archivos de símbolos contienen una variedad de datos muy útiles al depurar código, como variables, nombres de función y direcciones de punto de entrada, lo que le permite comprender mejor las excepciones y el orden de ejecución de la pila de llamadas. Los símbolos para la mayoría de las variantes de Windows están disponibles a través del servidor de símbolos de Microsoft o se pueden descargar para búsquedas más rápidas y sin conexión en Descargar paquetes de símbolos de Windows.
Para establecer las opciones de símbolos para Visual Studio, seleccione Herramientas > Opcionesy, a continuación, vaya a Depuración > Símbolos en la ventana de diálogo.
Para cargar símbolos en una sesión de depuración con WinDbg, establezca la variable sympath en la ubicación del paquete de símbolos. Por ejemplo, al ejecutar el siguiente comando se cargarán símbolos desde el servidor de símbolos de Microsoft y, a continuación, se almacenarán en caché en el directorio C:\Symbols:
.sympath SRV*C:\Symbols*http://msdl.microsoft.com/download/symbols
.reload
Puede agregar más rutas de acceso mediante el ‘;’
delimitador o usar el .sympath+
comando . Para realizar operaciones más avanzadas con símbolos usando WinDbg, consulte Símbolos Públicos y Privados.
WinDbg
WinDbg es un depurador eficaz que forma parte del conjunto de herramientas de depuración para Windows, incluido en la Windows SDK. La instalación de Windows SDK permite instalar herramientas de depuración para Windows como un producto independiente. Aunque resulta muy útil para depurar código nativo, no se recomienda WinDbg para aplicaciones escritas en código administrado o HTML5.
Para usar WinDbg con aplicaciones UWP, primero tendrás que deshabilitar la Administración de la Duración del Proceso (PLM) para el paquete de la aplicación mediante PLMDebug, como se describe en Herramientas de Pruebas y Depuración para la Administración de la Duración del Proceso (PLM).
plmdebug /enableDebug [PackageFullName] ""C:\Program Files\Debugging Tools for Windows (x64)\WinDbg.exe\" -server npipe:pipe=test"
A diferencia de Visual Studio, la mayor parte de la funcionalidad principal de WinDbg se basa en proporcionar comandos a la ventana de comandos. Los comandos proporcionados permiten ver el estado de ejecución, investigar volcados del modo de usuario y depurar en una variedad de modos.
Uno de los comandos más populares de WinDbg es !analyze -v
, que se usa para recuperar una cantidad detallada de información sobre la excepción actual, entre los que se incluyen:
- FAULTING_IP: puntero de instrucción en el momento en que se produjo el fallo
- EXCEPTION_RECORD: dirección, código y marcas de la excepción actual
- STACK_TEXT: seguimiento de pila antes de la excepción
Para obtener una lista completa de todos los comandos de WinDbg, vea Comandos del depurador.