> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Depuración de proyectos de PC en dispositivos Windows remotos en Visual Studio

> Asocia el depurador de Visual Studio 2022 a compilaciones de juegos de PC que se ejecutan en una máquina Windows remota mediante la extensión del marketplace del GDK para implementar y depurar.

<Info>La aplicación XBOX PC Toolbox está en versión preliminar. Descárgala desde la [Microsoft Store](https://aka.ms/toolboxinstaller) en Windows.</Info>

Las [XBOX PC Remote Tools](https://learn.microsoft.com/gaming/gdk/docs/gdk-dev/pc-dev/overviews/remote-gamedev-tools) incluyen la capacidad de asociar el depurador de Visual Studio 2022 a un juego que se ejecuta en un dispositivo Windows remoto. Todo el tráfico de depuración entre el PC de desarrollo y el dispositivo Windows remoto está cifrado. La capacidad de asociar el depurador la proporciona una [extensión de Visual Studio 2022](https://marketplace.visualstudio.com/items?itemName=XboxGDK.Microsoft-Xbox-PC-Remote-Debugger), que está disponible en el marketplace público de Visual Studio.

Antes de depurar, el PC de desarrollo y el dispositivo Windows remoto deben aprovisionarse y emparejarse siguiendo los pasos descritos en la [guía de inicio rápido](/tools/tools-pc/xbox-pc-remote-tools/quickstart).

Después del emparejamiento y el aprovisionamiento, descarga la extensión XBOX PC Remote Debugger mediante el [Administrador de extensiones de Visual Studio](https://learn.microsoft.com/visualstudio/ide/finding-and-using-visual-studio-extensions?view=visualstudio).
Después del emparejamiento y el aprovisionamiento, descarga la extensión XBOX PC Remote Debugger mediante el [Administrador de extensiones de Visual Studio](https://aka.ms/XboxPCRemoteDebugger).

<img src="https://mintcdn.com/microsoft-4404708b/5IpvKlT-jmAaVkeY/images/gdk/tools/xbox_pc_remote_debugger_extension.png?fit=max&auto=format&n=5IpvKlT-jmAaVkeY&q=85&s=b5beb1a3b79d24e2963ece62f6bbfe6d" alt="La extensión XBOX PC Remote Debugger en el Marketplace de Visual Studio" width="1152" height="386" data-path="images/gdk/tools/xbox_pc_remote_debugger_extension.png" />

## Habilitación de la implementación y depuración con F5 en el proyecto de tu juego

La extensión XBOX PC Remote Debugger para Visual Studio admite la integración completa con "F5" para implementar y depurar proyectos de C++ en dispositivos Windows remotos. Al presionar <kbd>F5</kbd>, se compila el proyecto, opcionalmente se implementa en el dispositivo remoto, se inicia el juego en estado suspendido, se asocia el XBOX PC Remote Debugger y, a continuación, se reanuda el juego bajo depuración.

Después de instalar la [extensión de Visual Studio XBOX PC Remote Debugger](https://marketplace.visualstudio.com/items?itemName=XboxGDK.Microsoft-Xbox-PC-Remote-Debugger), comprueba lo siguiente antes de usar la implementación y depuración remotas con F5:

1. El PC de desarrollo y el dispositivo Windows remoto deben aprovisionarse y emparejarse siguiendo los pasos descritos en la [guía de inicio rápido](/tools/tools-pc/xbox-pc-remote-tools/quickstart).

2. El Monitor de depuración de Microsoft Visual Studio (`MSVSMON.EXE`) debe estar instalado en el dispositivo remoto. `MSVSMON.EXE` lo instala automáticamente la [aplicación XBOX PC Toolbox](/tools/tools-pc/xboxpctoolbox/xboxpctoolbox). Como alternativa, la instalación se puede realizar con WinGet desde un símbolo del sistema con permisos de administrador en el dispositivo remoto:

```
   winget install Microsoft.VisualStudio.2022.OnecoreMsvsmon
```

3. [`wdEndpoint.exe`](/tools/tools-pc/commandlinetools/gr-wdEndpoint) debe estar en ejecución en el dispositivo remoto. `wdEndpoint.exe` lo instala e inicia automáticamente la [aplicación XBOX PC Toolbox](/tools/tools-pc/xboxpctoolbox/xboxpctoolbox). Como alternativa, la instalación se puede realizar con Winget desde un símbolo del sistema en el dispositivo remoto:

```
   winget install Microsoft.Gaming.RemoteIterationEndpoint 
```

Inicia `wdEndpoint.exe` manualmente después de instalarlo mediante WinGet.

### Adición de compatibilidad con la depuración remota con F5 a un proyecto de MSBuild

Para habilitar la integración con F5 en un proyecto que usa MSBuild, agrega el siguiente XML a tu archivo `.vcxproj`. Colócalo después del último elemento `</ItemDefinitionGroup>` y antes de las secciones `<ItemGroup>` de archivos de código fuente:

```xml theme={null}
<ItemGroup>
  <ProjectCapability Include="Gaming.Xbox.PC.Remote" />
</ItemGroup>
<Import Condition="'$(XboxPCRemotePath)'!='' AND Exists('$(XboxPCRemotePath)XboxPCcppDebugger.props')"
  Project="$(XboxPCRemotePath)XboxPCcppDebugger.props" />
<ItemGroup>
  <PropertyPageSchema Condition="'$(XboxPCRemotePath)'!=''" Include="$(XboxPCRemotePath)XboxPCcppDebugger.xml" />
</ItemGroup>
```

<Note>La versión más reciente de las [plantillas del Microsoft GDK](https://aka.ms/gdktemplates) te pregunta si quieres incluir esta integración al crear proyectos nuevos.</Note>

<img src="https://mintcdn.com/microsoft-4404708b/5IpvKlT-jmAaVkeY/images/gdk/tools/xbox_pc_remote_debugger_template_prompt.png?fit=max&auto=format&n=5IpvKlT-jmAaVkeY&q=85&s=a620c5d24191e498dba4589f65921d57" alt="El aviso para habilitar la depuración remota en un proyecto nuevo" width="879" height="567" data-path="images/gdk/tools/xbox_pc_remote_debugger_template_prompt.png" />

Para habilitar la implementación, ve a **Project > Properties > Configuration Manager** y activa la opción **Deploy** para la configuración deseada.

<img src="https://mintcdn.com/microsoft-4404708b/5IpvKlT-jmAaVkeY/images/gdk/tools/xbox_pc_remote_debugger_deploy_checkbox.png?fit=max&auto=format&n=5IpvKlT-jmAaVkeY&q=85&s=ba9f7ae896391e1f7e9415b60f472c40" alt="Habilitación de la implementación para una configuración" width="696" height="435" data-path="images/gdk/tools/xbox_pc_remote_debugger_deploy_checkbox.png" />

Antes de presionar **F5**, establece el depurador en **XBOX PC Remote Debugger** mediante la barra de herramientas de depuración o la página de propiedades del proyecto. Hay varias propiedades disponibles para configurar la implementación y la depuración.

<img src="https://mintcdn.com/microsoft-4404708b/5IpvKlT-jmAaVkeY/images/gdk/tools/xbox_pc_remote_debugger_property_page.png?fit=max&auto=format&n=5IpvKlT-jmAaVkeY&q=85&s=12b098d60639fc9733dd2c9bf4e3ee50" alt="Las propiedades del XBOX PC Remote Debugger" width="792" height="544" data-path="images/gdk/tools/xbox_pc_remote_debugger_property_page.png" />

* `Remote Command Arguments`. La lista de argumentos de comando que se pasan al juego.

* `Deployment Directory`. El directorio del PC de desarrollo que se implementa en el dispositivo Windows remoto. El valor predeterminado es `$(Outdir)`.

* `Remote Folder`. La carpeta en la que se implementa el juego en el dispositivo Windows remoto. La carpeta es relativa a la *Common Root*. Consulta el tema [`wdEndpoint.exe`](/tools/tools-pc/commandlinetools/gr-wdEndpoint) para obtener más información sobre la *Common Root*.

* `Remote EndPoint Name`. El dispositivo remoto predeterminado es la propia máquina del desarrollador, igual que con la depuración remota estándar de Windows. Actualiza el valor de `Remote EndPoint Name` con el nombre del dispositivo donde se está ejecutando `wdEndpoint.exe`.

* `File filter for deployment`. Se usa para especificar el conjunto de archivos que deben excluirse de la implementación. Excluir los archivos `.pdb` de la implementación es una práctica habitual, por ejemplo. Proporciona una lista de patrones de archivo que se van a excluir, separados por punto y coma, por ejemplo: `*.pdb;*.ipdb;*.iobj;*.obj;*.pch;*`.

Una vez que la casilla **Deploy** esté seleccionada para tu **Configuration**, se haya elegido **XBOX PC Remote Debugger** como tipo de depurador y se hayan rellenado las propiedades, al presionar **F5** se compilará el juego, se implementará en el dispositivo Windows remoto y se iniciará bajo el depurador.

<Note>Es posible que tengas que configurar las rutas de acceso de símbolos para que Visual Studio pueda encontrar los símbolos de tu juego. Hazlo mediante la configuración de **Debugging** en el cuadro de diálogo **Options**, accesible desde el menú **Tools**.</Note>

#### Valores predeterminados por proyecto del depurador remoto con F5

Los valores predeterminados de la configuración del XBOX PC Remote Debugger los establece el archivo `XboxPCcppDebugger.props`, y las modificaciones realizadas a la configuración en el cuadro de diálogo de propiedades del proyecto de Visual Studio se guardan "por usuario" en la máquina local.

Para que tu vcxproj proporcione otro valor predeterminado y evitar que cada usuario tenga que configurarlo en su máquina, agrégalo a MSBuild de la siguiente manera:

```xml theme={null}
<ItemGroup>
  <ProjectCapability Include="Gaming.Xbox.PC.Remote" />
</ItemGroup>
<Import Condition="'$(XboxPCRemotePath)'!='' AND Exists('$(XboxPCRemotePath)XboxPCcppDebugger.props')"
  Project="$(XboxPCRemotePath)XboxPCcppDebugger.props" />
<PropertyGroup>
  <RemoteGameshareFolder>MyGameTitle</RemoteGameshareFolder>
</PropertyGroup>
<ItemGroup>
  <PropertyPageSchema Condition="'$(XboxPCRemotePath)'!=''" Include="$(XboxPCRemotePath)XboxPCcppDebugger.xml" />
</ItemGroup>
```

### Implementación del entorno de ejecución de Visual C++ (CRT)

Para que un programa se ejecute en la máquina remota, necesita los archivos del entorno de ejecución de Visual C++. Para el CRT comercial, esto puede hacerse instalando el paquete REDIST de Visual C++ en la máquina remota. Para el CRT de depuración, estos archivos deben implementarse con el título.

Una solución sencilla para esto en MSBuild es agregar una propiedad a la sección Global de tu proyecto:

```xml theme={null}
<CopyCppRuntimeToOutputDir>true</CopyCppRuntimeToOutputDir>
```

Esto copiará el CRT de Visual C++ en `OutDir`. Se usará la versión de depuración si `UseDebugLibraries` está establecido en true; de lo contrario, se usará la versión comercial.

### Adición de compatibilidad con la depuración remota con F5 a un proyecto de CMake

Para un proyecto de carpeta abierta (como un proyecto de CMake), la compatibilidad con la depuración remota con F5 se configura en `launch.vs.json`, en lugar de en un archivo `.vcxproj`.

1. Instala la compatibilidad con el XBOX PC Remote Debugger y asegúrate de que el dispositivo Windows remoto esté aprovisionado y ejecutando `wdEndpoint.exe`.

2. Abre la carpeta de tu proyecto de CMake en Visual Studio.

3. En el **Explorador de soluciones**, haz clic con el botón derecho en **CMakeLists.txt** y selecciona **Add Debug Configuration...**.

4. Selecciona **XBOX PC Remote Debugger Folder**.

<img src="https://mintcdn.com/microsoft-4404708b/5IpvKlT-jmAaVkeY/images/gdk/tools/xbox_pc_remote_debugger_cmake_debug_configuration.png?fit=max&auto=format&n=5IpvKlT-jmAaVkeY&q=85&s=f4f1ad1f89fb057f614d8f163a37d99d" alt="Adición de una configuración de depuración a un proyecto de CMake" width="869" height="569" data-path="images/gdk/tools/xbox_pc_remote_debugger_cmake_debug_configuration.png" />

Visual Studio crea un archivo `.vs\launch.vs.json` con una configuración de inicio `Xbox PC Remote Debugger`.

Una configuración típica tiene este aspecto:

```json theme={null}
   {
     "version": "0.2.1",
     "defaults": {},
     "configurations": [
       {
         "type": "default",
         "name": "MyGame.exe",
         "project": "CMakeLists.txt",
         "projectTarget": "MyGame.exe",
         "deployDirectory": "${workspaceRoot}\\out\\build\\x64-Release\\bin",
         "deployExcludeFilter": "*.pdb;*.ipdb;*.iobj;*.obj;*.pch;*.ilk;*.exp;*.lib;*.winmd;*.appxrecipe;*.log;*.tlog;*unsuccessfulbuild;*.lastbuildstate;*.copycomplete",
         "remoteGameshareFolder": "MyGame",
         "remoteMachineName": "MyROGAlly",
         "targetName": "MyGame.exe",
         "args": [],
         "deployType": "GamingXboxPCRemoteDeploy"
       }
     ]
   }
```

5. Actualiza la configuración generada con valores para las siguientes propiedades:

   * `deployDirectory`. La carpeta de salida local que contiene los archivos que se van a implementar.

   * `remoteGameshareFolder`. La carpeta que se va a crear o usar en el dispositivo remoto.

   * `remoteMachineName`. El nombre del dispositivo remoto donde se está ejecutando `wdEndpoint.exe`.

   * `targetName`. El ejecutable del juego que se va a iniciar después de la implementación.

6. Opcionalmente, actualiza estas propiedades según sea necesario:

   * `deployExcludeFilter`. Una lista de patrones de archivo separados por punto y coma que se excluirán de la implementación.

   * `args`. Argumentos de línea de comandos que se pasan al juego cuando se inicia.

   * `disableDeploy`. Establece esta propiedad cuando quieras omitir la implementación y solo iniciar o realizar la asociación con el depurador.

7. Compila tu juego localmente, selecciona **CMakeLists.txt** en la barra de herramientas del depurador y presiona **F5** para implementar el juego en el dispositivo remoto e iniciarlo bajo el depurador.

<img src="https://mintcdn.com/microsoft-4404708b/5IpvKlT-jmAaVkeY/images/gdk/tools/xbox_pc_remote_debugger_cmake_debug_toolbar.png?fit=max&auto=format&n=5IpvKlT-jmAaVkeY&q=85&s=c0a5c9d225c7a0c1433e18e3bc8fa646" alt="Selección de CMakeLists.txt en la barra de herramientas del depurador" width="684" height="92" data-path="images/gdk/tools/xbox_pc_remote_debugger_cmake_debug_toolbar.png" />

## Asociación del depurador de Visual Studio a juegos que se ejecutan en dispositivos Windows remotos

Para asociar el depurador a un juego que ya se está ejecutando en un dispositivo remoto, selecciona **Attach to Process...** en el menú **Debug** de Visual Studio. Selecciona **XBOX PC Remote Device** en la lista desplegable **Connection Type** e introduce la dirección IP o el nombre de host de tu dispositivo remoto en el cuadro de texto **Connection Target**. Se muestra la lista de procesos que se están ejecutando en tu dispositivo remoto. Selecciona el juego que quieras depurar y selecciona el botón **Attach**.

<img src="https://mintcdn.com/microsoft-4404708b/5IpvKlT-jmAaVkeY/images/gdk/tools/xbox_pc_remote_debugger_attach.png?fit=max&auto=format&n=5IpvKlT-jmAaVkeY&q=85&s=9af2fa1ec8dcaf6e5709e9a074ce951e" alt="Imagen del cuadro de diálogo de asociación con el transporte correcto seleccionado" width="936" height="692" data-path="images/gdk/tools/xbox_pc_remote_debugger_attach.png" />

## Consulte también

[XBOX PC Remote Tools](https://learn.microsoft.com/gaming/gdk/docs/gdk-dev/pc-dev/overviews/remote-gamedev-tools)


## Related topics

- [Depuración de proyectos de PC con Visual Studio](/es/tools/tools-pc/visualstudio/gr-vs-debugging-with-visualstudio.md)
- [Depuración de proyectos de XBOX con Visual Studio](/es/tools/tools-console/visualstudio/debugging-with-visualstudio.md)
- [Plantillas de proyecto en Visual Studio para el desarrollo de juegos de PC](/es/tools/tools-pc/visualstudio/gr-vs-templates.md)
- [Preguntas frecuentes y guía de solución de problemas de las XBOX PC Remote Tools](/es/tools/tools-pc/xbox-pc-remote-tools/faq.md)
- [Depuración en vivo en Visual Studio ante excepciones de sombreadores](/es/tools/tools-console/hix/shader-exceptions-live-debugging-in-vs.md)
