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.
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:
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:
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:
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.
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:
After logging in, it will attempt to obtain a developer license, which should succeed. A dialog box like this will pop up:
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):
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!
Comments
Anonymous
January 07, 2014
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 regardsAnonymous
January 08, 2014
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, JonAnonymous
January 11, 2014
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.Anonymous
January 20, 2014
This method has one major drawback that one has to renew dev licence each month.Anonymous
January 21, 2014
The comment has been removedAnonymous
March 05, 2014
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. =)Anonymous
August 20, 2014
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,Anonymous
March 03, 2015
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ürgenAnonymous
March 03, 2015
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?Anonymous
June 26, 2015
The comment has been removedAnonymous
February 05, 2016
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.