Note Pull Deployment is deprecated and will be removed from a future XDK. We recommend using Run from PC Deployment. See xbapp registernetworkshare and Run from PC Deployment in the documentation for more details. If you have issues migrating to Run from PC Deployment please contact your Developer Account Manager for assistance.
Remote Deploy (xbdeploy.exe) is a tool for deploying files from a directory on the development PC to the console.
xbdeploy supports two deployment modes, push deployment and pull deployment.
Push deployment (xbdeploy push) deploys all game binaries to the devkit during initial registration. During game execution all IO requests work directly on the devkit. See Push Deployment for additional information on push deployment.
Pull deployment (xbdeploy pull) is a deferred file deployment mechanism that doesn’t deploy any game binaries to the devkit during initial registration. When a title is deployed, IO requests are redirected to the development PC’s loose files directory. During game execution content is dynamically pulled to the devkit as it is used. Logically this is similar to running a game off a network share. See Pull Deployment for additional information on pull deployment.
For projects that are less than 20 GB there isn’t a significant difference between push and pull deployment. For projects that are greater than 20GB, pull deployment greatly reduces the initial startup time and iteration.
Note that Visual Studio supports integrated pull deployment that automates much of the management and updating associated with using pull deployment. See Pull Deployment and the Xbox One Deployment (Developer Education Materials > All NDA Whitepapers) white paper for more information on enabling pull deployment in Visual Studio.
Note The __debugbreak compiler intrinsic prevents all deployment once it is called, including xbdeploy, Visual Studio deployment, and streaming install. If __debugbreak is called in your title, you must reboot the console to restore deployment functionality.
Xbdeploy provides the subcommands and functions described in the following table.
| Command | Description |
|---|---|
| xbdeploy pull | Starts pull deployment of loose files from a directory. |
| xbdeploy push | Push deploys a loose file directory to the console. |
| xbdeploy stop | Stops pull deployment of a specified package or for all packages. |
| xbdeploy audition | Starts audition monitoring of a specified package. |
| xbdeploy list | Lists all sessions by console IP address and package name. |
| xbdeploy shutdown | Stops all sessions and shuts down the server. |
Starts pull deployment of loose files from the directory specified by app_path. See Pull Deployment for additional information on pull deployment.
xbdeploy pull app_path [/mf:file_path] [/tm] [/vm] [/temp:folder_path] [/X[:]address[+<accesskey>]]
|
| Option | Description | ||
|---|---|---|---|
| app_path | Specifies a local directory that contains the file(s). | ||
| /mf:file_path | Specifies the path to the layout mapping file to be used for pull deployment. See Pull Deployment for information on the mapping file schema and use. | ||
| /tm | prints a transfer performance metrics summary after all files have been transferred. | ||
| /vm | Do extra validation of the manifest before registering the package. This will not block registration, but will display any validation warnings. | ||
| /temp:folder_path | Specifies the path to the folder where temporary files will be created. If you do not specify a folder for temporary files, the %TEMP% folder will be used. | ||
| /X[:]address[+<accesskey>] | Specifies the host name or address (shown as Tools IP on the console) of a targeted console, but does not change the default console. For information about setting a host name for a console, see Setting a Hostname for the Console IP Address.If you do not use this option, the default console (previously set by Connect (xbconnect.exe)) is used.Accesskey is a string that you can use to restrict access to a console to only those people who know the access key. Set the access key by using the command xbconfig accesskey=your-key; then, restart your console to make the access key effective. To access a console that is configured with an access key, you must include a plus sign (+) and the access key after the IP address or host name of the console. For more information about access keys, see xbconfig accesskey.
|
Return to the top of this topic.
Push deploys a loose file directory to the console. See Push Deployment for additional information on push deployment.
xbdeploy push app_path [/s:file_path] [/f:folder_path] [/drive:retail|development|Ext1-Ext7] [/tm] [/vm] [/X[:]address[+<accesskey>]]
|
| Option | Description | ||
|---|---|---|---|
| app_path | Specifies a local directory that contains the file(s). | ||
| /s:file_path | Syncs files exactly. This will remove any files from the remote destination that are not in the source path. | ||
| /f:folder_path | Specifies a folder path relative to the title scratch drive root of the console which the title should be deployed to. See Folder Based Deployment for more information | ||
| /drive:retail|development|Ext1-Ext7 | Target drive the application should be deployed to instead of using the default. This option is not compatible with the /f option since that will deploy to a folder on TitleScratch. On an Xbox One X devkit, the development drive is the internal NVMe drive. On other consoles, the first external drive will be considered the development drive. Numbers 0 - 8 can also be specified to refer to these drives where 0 is the internal retail drive, 1 is the development drive, and 2-8 match the external drives. | ||
| /tm | prints a transfer performance metrics summary after all files have been transferred. | ||
| /vm | Do extra validation of the manifest before registering the package. This will not block registration, but will display any validation warnings. | ||
| /X[:]address[+<accesskey>] | Specifies the host name or address (shown as Tools IP on the console) of a targeted console, but does not change the default console. For information about setting a host name for a console, see Setting a Hostname for the Console IP Address.If you do not use this option, the default console (previously set by Connect (xbconnect.exe)) is used.Accesskey is a string that you can use to restrict access to a console to only those people who know the access key. Set the access key by using the command xbconfig accesskey=your-key; then, restart your console to make the access key effective. To access a console that is configured with an access key, you must include a plus sign (+) and the access key after the IP address or host name of the console. For more information about access keys, see xbconfig accesskey.
|
Return to the top of this topic.
Stops pull deployment of the package specified by package_full_name. If no package is specified, pull deployment is stopped for all packages.
xbdeploy stop package_full_name [/X[:]address[+<accesskey>]]
|
| Option | Description | ||
|---|---|---|---|
| package_full_name | Specifies the full package name of the application. For example, mygame_1.0.0.0_neutral__r9wapr0zzdgy. | ||
| /X[:]address[+<accesskey>] | Specifies the host name or address (shown as Tools IP on the console) of a targeted console, but does not change the default console. For information about setting a host name for a console, see Setting a Hostname for the Console IP Address.If you do not use this option, the default console (previously set by Connect (xbconnect.exe)) is used.Accesskey is a string that you can use to restrict access to a console to only those people who know the access key. Set the access key by using the command xbconfig accesskey=your-key; then, restart your console to make the access key effective. To access a console that is configured with an access key, you must include a plus sign (+) and the access key after the IP address or host name of the console. For more information about access keys, see xbconfig accesskey.
|
Return to the top of this topic.
Starts audition monitoring of the package specified by package_full_name.
xbdeploy audition package_full_name [/X[:]address[+<accesskey>]]
|
| Option | Description | ||
|---|---|---|---|
| package_full_name | Specifies the full package name of the application. For example, mygame_1.0.0.0_neutral__r9wapr0zzdgy. | ||
| /X[:]address[+<accesskey>] | Specifies the host name or address (shown as Tools IP on the console) of a targeted console, but does not change the default console. For information about setting a host name for a console, see Setting a Hostname for the Console IP Address.If you do not use this option, the default console (previously set by Connect (xbconnect.exe)) is used.Accesskey is a string that you can use to restrict access to a console to only those people who know the access key. Set the access key by using the command xbconfig accesskey=your-key; then, restart your console to make the access key effective. To access a console that is configured with an access key, you must include a plus sign (+) and the access key after the IP address or host name of the console. For more information about access keys, see xbconfig accesskey.
|
Return to the top of this topic.
List all pull sessions by console IP address and package name.
xbdeploy list
|
Return to the top of this topic.
Stop all pull sessions and shutdown the server.
xbdeploy shutdown
|
Return to the top of this topic.