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”.
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|
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.
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:
If the solution or Shared project is selected the create options will be disabled:
Follow the Windows Store Developer Solutions team on Twitter @wsdevsol.