Get started with Project Centennial

What is Project Centennial? In short, a tool for app developers to quickly convert x86/x64 applications (.msi or .exe) into Universal Apps (.appx). The apps could then be distributed via Windows Store or Windows Store for Business. For more information, take a look here:

What is Project Centennial or Bring your desktops apps to the Windows Universal Platform

Earlier today the tool to make this conversion was released in preview (download it here) and I’ve done my first test with it during the day. This post will cover the process in a few quick steps and give you a good start in converting apps. You can also review the official site from Microsoft covering the tool: Desktop to UWP app

Note, most (if not all) apps you convert today will probably be un-supported and if you use an app someone else have developed you are probably breaking some kind of agreement. So use this in test and development environments or on your apps developed in house. Lets get started!

A few things to be aware of:

  • You need to be running the latest Windows 10 release (14316)
  • You need to enable Containers (and it requires Windows Enterprise)
  • You need to install Windows 10 SDK
  • 64 bit (x64) processor
  • Hardware-assisted virtualization
  • Second Level Address Translation (SLAT)

Begin by downloading the preview together with the base-image in .WIM format. I recommend that you extract the tool in a folder on your C:\ drive but you could place it where it suits you. Place the base-image in the same folder.

Enable Containers either via the GUI (add remove features) or Powershell:

Enable-WindowsOptionalFeature -FeatureName Containers -Online

And install the Windows 10 Standalone SDK.

Open an administrative Powershell windows and set the execution policy to Bypass.

Step1

Next step is to extract the base-image and setup the tool. Default, it will place the image in: C:\ProgramData\Microsoft\Windows\Images\BaseImage-14316

Step1and2

Run the following line (only required the first time you run the tool on a computer):

.\DesktopAppConverter.ps1 -setup -Baseimage .\baseimage-14316.wim

Make sure you have navigated to the root of the DesktopAppConverter Folder before running the above.

When the command has finished, you are ready to start converting apps. In this example, I’ll use 7zip in MSI-format.

Step3

I use the same .ps1 script as before, but points it to the expanded (extracted) base image. This will be the base (containerized) when creating the app-package. Point out the default folder and fill in the rest of the required attributes.

When pointing out the msi, I recommend that you place it into a separate folder. The script will copy everything in the folder were the file is placed, and this could cause complications. I wasn’t a good idea to use my download folder for example. 🙂

Other things to be aware of:

  • The version needs to be in the following format X.X.X.X
  • The destination needs to be an empty folder or the script will create it for you.
  • The Publisher needs the CN= first, and this will also be important to remember when setting up the certificates later on.
  • Point out the correct executable.
  • PackageName should not include a number.
  • You also have a couple of optional attributes that you could use, but I will not cover them in details.
When the command finishes, you’ll notice that no .appx package as been created. The destination folder will only contain a folder structure and an app-manifest file. This is as it should be, you will need to compile the apps package (and sign it) yourself.
Step4
Using the makeappx.exe (in the SDK folder) we point out the folder containing all the files and create a .appx file. This is basically only a compression, but it will use the Manifest-file (XML) to populate the app information.
When the package is done, you need to sign it. It’s of course best to use a real, trusted certificate and if you want to publish it to the Store you should follow the normal procedure using for example Visual Studio. If you try to install it, you will get the following error:
Step5
Just to clarify I’m not even close to being a developer – so if something is in incorrect or incomplete in the matter it’s because of this. 🙂 I’ve followed this excellent guide in the matter, so if you need any additional information I suggest you read it: Make a Metro Appx Package for scratch
The makecert.exe is also a part of the SDK. As well as the signtool.exe used later on.
Step6
Create the root certificate using the same CN as you did in your package. This will put it in your users Trusted Root Certificate store. I was unable to get this to work without adding it to the local computers root also. So I suggest you export it from your user store and import it into your computer store. Be aware of the fact that this will install everything trusted by the root certificate.
Step75
You will then create a user certificate that you will use to sign the package. When you have done that, get the Thumbprint from the certificate using Powershell:
dir cert:CurrentUser\My
Step7
Copy the Thumbprint and using the line below, sign your appx package.
.\signtool.exe /fd sha256 /sha1 .\
Now your package is ready for installation (or distribution if you export your cert or have been using a correct one). The easiest way to do this is to run
Add-AppxPackage
Step8
The app will be installed and added to your start menu.
There you go! Start converting and ill keep you updated on the latest news and my finding.
Tagged with: , , , , ,
Posted in Microsoft, Okategoriserade, Technical Preview, The Basics, Windows 10, Windows Store for Business
One comment on “Get started with Project Centennial
  1. […] by Brad Sams @ Thurrott.com that Windows 10 Cloud currently do not support apps converted with Project Centennial. This to me makes little sense and I hope this will change moving […]

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: