Creating and Testing Streaming Install Package Updates
Package updates are packages that are used to provide updated content for a base package that is already installed. Package updates can be created for testing purposes using the default behavior of makepkg (not using the /l or /lu switch). To ensure the update process works correctly, the base package and the update package must be built with the same content ID using the /contentid switch.
To build and test an update package
- Use the content update planning and comparison tools (cudiff.exe or cudiffui.exe) to help you understand the impact of the changes between your package versions.
- Create your base package with a fixed content ID by using the /contentid switch. The content ID value 00000000-0000-0000-0000-000000000001 is suggested for simplicity. This isn’t necessary when submitting, just for testing. Retain this base version (or the ability to reconstruct it) for your future update testing.
- Create your update package, using same content ID. Make sure that the identity section of your AppXManifest.xml has the same values for the Name and Publisher attributes. The only attribute which is acceptable to change is the version number, and it should always increment when performing a new submission.
- Test your update in one of two ways:
- Regular update—this happens if you have the base title installed, and then were to run the application online with a mandatory update published. To simulate, install the base title version, then run the following command to update to a newer XVC specified on the command line.
Xbapp update /m c:\mypackage.1.1.xvc
- Disc install—create a test disc from which to install the update using one of the following methods:
- Follow the instructions in the Creating Test Discs topic. The update will be installed automatically when you insert the disc into the console.
- Create a test disc with the XVC in the root of the disc file system, and then install using the following command:
xbapp install XO:\XVC-Name
- Hybrid install—your title is about to install from disc, but you have a newer version required up in the cloud. The system will install from the cloud – but accelerate the install by copying chunks that haven’t changed from the disc. All this is reported through the streaming install APIs like a regular install, so it looks like you’re just installing the new version. You start without the title installed on the kit. Then call:
xbapp update http:\\server\mypackage.1.1.xvc /p:c:\mypackage.1.0.xvc
The base package is served from your dev PC, and the updated XVC is pulled from a server.
See also
White Paper: Designing Title Package Layout for Updates (Developer Education Materials > All NDA Whitepapers)