Why can’t I create an app package? Windows Phone Xap vs. Appx


Differences between Windows Phone Silverlight apps and Windows Phone Store apps are a recurring source of confusion for Windows Phone developers.

A frequently asked question on the Windows Phone forums is “Why can’t I create an app package? When I go to the store menu it has only a ‘Launch Windows App Certification Kit…’ option”.

Silverlight project's Store menu

The reason is that the developer is writing a Windows Phone Silverlight app, and app packages are used only by Windows Runtime apps:

  Visual Studio Project Type Package Type Package Built
Silverlight Windows Phone Silverlight 8.0 Xap With project
Windows Phone Silverlight 8.1 Xap With project
Universal Windows 8.1 Appx By Store menu
Windows Phone 8.1 Appx By Store menu
Shared N/A N/A

 

Silverlight apps use xap files which are generated as part of the normal build process. They don’t have a separate packaging step. Build the app and look in the project’s bin\<configuration> folder and you’ll find the xap. Build for Release and the bin\Release\<app>.xap file is ready to upload.

Directory listing with Xap file in \bin\Release

Universal apps (both Windows Store and Windows Phone Store apps) need to be built into app packages to be uploaded to the store, and this menu is the way to do that. When you build a Universal app for debugging the project files are built but not packaged for installation. The app doesn’t need to be packaged until you are ready to upload it to the store or to send it to another machine for testing. If you deploy a Universal app’s Windows project locally you can examine the staged Appx in the project directory\bin\<configuration>\Appx. Windows Phone projects will create this directly to the phone. The compressed appx isn’t needed until you want to deploy the app to another system (i.e. for testing or release), and that file will be created in the project’s AppPackages folder by the “Create App Packages…” menu.

With a Windows Store or Windows Phone Store project selected the menu looks likes this:

Runtime project's Store menu

If the solution or Shared project is selected the create options will be disabled:

Shared project's Store menu

 

– Rob

Follow the Windows Store Developer Solutions team on Twitter @wsdevsol.

Comments (7)

  1. N.E.O.N. native earthling organization networks says:

    Thank you.

  2. W0GER says:

    So how does one create the App package and upload from the build server?

  3. Rob Caplan [MSFT] says:

    @W0GER, from a build server you'll probably  use the command line tools to create your apps, but that's a completely different subject. Start with the docs at msdn.microsoft.com/…/hh446593(v=vs.85).aspx

  4. so it is says:

    So it is, that's what I am wondering recently, thanks Rob.

  5. Dave Curtis says:

    You don't really point out that this is an unannounced change in Visual Studio Express 2013. Previously Silverlight apps did have the menu items to produce packages explicitly.

    One thing this provided was control over version number. There seem to be two files which have a version number specified, WMAppManifest.xml and Package.appxmanifest. I don't know which is supposed to provide the version number for the package. However when I try to provide an updated package it is not accepted because it does not have a higher version number than the current package, even though I have specified a higher number in both of these files. So now it's impossible for me to update my app.

    I put a query on the forum here:

    social.msdn.microsoft.com/…/set-version-number-for-silverlight-package

  6. Limbomusic says:

    My. god. Thank you. I just spent hours trying to figure out why I coulndt package my 8.1 silverlight app… u just use the xap…

  7. Lucas says:

    Nice! Thank you very much!!!