Windows 8.1: Side load your apps onto your test device


Lately, I have been working on a Windows 8.1 app for a client of ours and, at the final presentation, they brought their own Microsoft Surface RT and would like us to install the app onto it. I have previously messed around with side loading Windows 8 apps onto test devices and it hasn’t always worked out the way I wanted it to. The requirement of signed packages is a great idea to prevent malware from spreading through the Windows Store but it makes it a little harder for developers to easily deploy apps onto test devices.

In this blog post, I will go through a quick way of side loading apps onto your Windows 8.1/RT test devices without having to import certificates signed by Visual Studio in the app package creation process. Here’s how it goes down:

1. Create the App Package in Visual Studio

Make sure that Visual Studio does not generate an app bundle when it creates the app package. This is done by opening the app manifest and choosing the Packaging tab. Click on the drop down menu next to “Generate app bundle” and select Never.

appbundle_never

Then, to create the app package, click on Project (in the top), select Store, and then click on Create App Packages… That will open a dialog box with the following question:

image

Select No as we do not want to upload anything to the Windows Store right now. Click on Next and choose the output folder and the version of the app if necessary. Make sure to select the right type target architecture. I suggest just creating one version: The neutral that will work on any CPU:

image

That will create the app package that you will use to install the app onto your desired target device.

2. Obtaining a developer license on the target device

In order to deploy the app onto the test device, you must have a developer account (associated with your Microsoft account). You will need to register your test device with your developer account. This is easily done by this simple PowerShell command:

Show-WindowsDeveloperLicenseRegistration

You must run PowerShell as an administrator on the device to obtain the developer license:

image

You may or may not already have a developer license installed on the device. In either case, a dialog box similar to the one below will pop up. Simply click I Agree to obtain the license.

image

You will then have to log in with your developer account (i.e., your Microsoft account). Here’s how it looks on my Danish machine:

image

After logging in, it will attempt to obtain a developer license, which should succeed. A dialog box like this will pop up:

image

You are now ready to install the app on your device!

3. Install the app onto the device

Locate the output package files that you generated with Visual Studio in step 1. I usually copy the whole output folder onto a USB flash drive to move it to my target device (for example, my Surface RT). Copy the folder from the flash drive to the device’s internal storage and open PowerShell as an administrator once again.

Navigate to the app package folder inside PowerShell. Type dir and press Enter to see the contents of the folder. It should look similar to this (with respect to a different app name):

image

Then simple execute the following command and your app will be installed onto the device:

Add-AppxPackage YourAppName_VersionNumber_AnyCPU_Debug.appx

Remember to replace the .appx file name with your correct file name. And that’s it! Your app is now installed and you’ll be able to test it out on your device. Easy and simple! Have fun testing your app! Smile


Comments (11)

  1. serge says:

    Thanks for the tips Sebastian, you are right that side loading is a hard path sometime especially when you need to build a business app that you do not want to make public and before that testing it the way you mention here is a good step before going further.

    thanks for sharing

    regards

  2. Jon Beard says:

    Sebastian, since you are working with side-loading, I have a question.  In education, IT directors want to manage apps (deploy to devices, pre-image devices, etc.) for large groups of users (teachers/students).  I have not been able to determine an easy way to do this.  The Microsoft folks I have spoken with have mentioned side-loading, but say it is not the easiest to use for this situation.  Any suggestions??

    Thanks,

    Jon

  3. Hey serge. Thanks for your comment. You are absolutely right. Hopefully, this little trick can come in handy.

    Jon: That is a very interesting scenario that I haven't been exposed to myself yet. I would definitely recommend you to take a look at Deployment Image Servicing and Management (DISM). You can read more about DISM and how to apply it to side-loading Windows Store Apps here: technet.microsoft.com/…/jj874388.aspx

    Let me know if it helps you. If not, I will try to find another solution.

  4. Farhan says:

    This method has one major drawback that one has to renew dev licence each month.

  5. Farhan: That is unfortunately true. But, then again, this method should really only be used for testing. If you are interested in deploying line-of-business (LOB) apps on your company devices, you should check out the link I posted in my previous comment. If you want to distribute Windows Phone 8 company apps, check out this article: msdn.microsoft.com/…/jj206943(v=vs.105).aspx

  6. Eugene says:

    Hi Sebastian,

    We have a developed an apps for side loading, and after some series of testing…I have encountered an error regarding the developer certificate(.cer) that has expired. One possible cause is the system clock isn't set to the correct date and time…. How can I fix this type of error? Please help me. =)

  7. Jitendra Jadav says:

    I have developed an app for side loading, and after some time this app give me error like not valid so my concern is what is the exact time for testing time for e.g. 10 days or 15 or 1 month like..?

    thank you,

  8. Jürgen Wahlmann says:

    Hi Sebastian,

    thanks for this tutorial which worked for me until actually installing the app to a windows 8.1 device: Here it fails with a certificate error 0x800B0109.

    One guess of mine is that the developer certificates are not of the same microsoft account (I may have used different accounts on the dev PC and the device).

    Do you have any idea what might be the cause of this?

    Best regards

    Jürgen

  9. Jürgen Wahlmann says:

    Nevermind, I had to import the App certificate into the trusted root certificates storage, then I was able to install the app. Perhaps a hint in your blog would be a good addition?

  10. mr white says:

    if i sideload an app on a windows tablet, uninstall it, then sideload it again, the app does not install i.e. you cant sideload the same version of the app twice.

    How to i go about fixing this?

  11. David Diaz says:

    Sebastian, your explanation is clear and precise. I had the same 0x800B0109 error, and I solved it registering manually the certificate using Microsoft Management Console (MMC). After registering the certificate the app worked perfectly. Thanks so much.