MSIX is the new packaging format to create new packages. It is aviable on Windows 10 v1809 and later. According to Microsoft packaging has never been easier. In this tutorial I will create a Paint.Net 4.1.5 package on a dedicated Hyper-V Virtual Machine. The package will be deployed with PowerShell.
The order:
- Prepare the packaging client
- At least Windows 10 v1809
- Participate in the Windows Insider Program

- Install the MSIX Packaging Tool from the Windows Store:

- At least Windows 10 v1809
- Create a self signed certificate to sign the MSIX package.
You can do that with PowerShell
$CurrentDir = Split-Path -parent $MyInvocation.MyCommand.Definition $CertName = $CurrentDir + "\Test.pfx" $PassWord = "P@ssw0rd" $HashedPassWord = ConvertTo-SecureString -String $PassWord -Force -AsPlainText $Org = "CN=Contoso1" $FriendlyName = "Test certificate" $ExpDate = "01-01-2030 00:00:00" New-SelfSignedCertificate -Type Custom -Subject $Org -KeyUsage DigitalSignature -FriendlyName $FriendlyName -NotAfter $ExpDate -CertStoreLocation "Cert:\LocalMachine\My" $TP = Get-ChildItem cert: -Recurse |Where-Object{$_.FriendlyName -match $FriendlyName} |Select-Object -ExpandProperty Thumbprint Export-PfxCertificate -Cert Cert:\LocalMachine\My\$TP -FilePath $CertName -Password $HashedPassWord Remove-Item Cert:\LocalMachine\My\$TP
- Prepare the packaging virtual machine
You can choose from:- Download a 90 day Windows 10 v1809 ISO image.
- Create a virtual machine with Hyper-V
- Capture the Paint.Net 4.1.5 installation
- Revert the VM to a clean state
- Install the Paint.Net package with PowerShell
Capture the installation
Start the MSIX packaging tool and click on Create your app package
| Description | Picture |
| Start the MSIX packaging tool and click on Create your app package | ![]() |
| Browse to the installer... | ![]() |
| ... and select the installer. | ![]() |
| Click [Next] | ![]() |
| Select the VM you want to use to perform the installation on. | ![]() |
| Enter the login details. | ![]() |
| Wait while the VM is prepared. | ![]() |
| Enter the package details. Once done, click [Next] | ![]() |
| Please wait while the package driver is installed on the VM. It can take a long time. | ![]() |
| Disable the services you do not need. | ![]() |
| Click [Next] | ![]() |
| Click [Next] | ![]() |
| Disable the automatic update function. Click [Next] |
![]() |
| Once installed, do not start the application. | ![]() |
| Click [Next] | ![]() |
| Start the application from here. The changes are still captured. |
![]() |
| Once started, close the application. | ![]() |
| Click [Next] | ![]() |
| Click [Move on] | ![]() |
| Save the 'raw' version in the correct folder. So you always have a raw version before performing the clean up. | ![]() |
| Click [Create] | ![]() |
| Click [Close] | ![]() |
| Now we are starting the cleanup and assigning the certificate to it. Open the package |
![]() |
| Open the 'raw' package. | ![]() |
| Open the package. | ![]() |
| Specify the certificate (pfx file) | ![]() |
| Enter the certificate details. | ![]() |
| Perform the cleanup. | ![]() |
| And we are sure that we want to delete an entry. | ![]() |
| Go to the package files... | ![]() |
| ... and delete all unneeded files. | ![]() |
| Save the cleaned up package | ![]() |
| Close. | ![]() |
Install the MSIX package
Revert the machine to a clean state.
Before you can install the MSIX package you have to install the certificate that you created earlier.
$CurrentDir = Split-Path -parent $MyInvocation.MyCommand.Definition
$CertName = $CurrentDir + "\Test.pfx"
$PassWord = "P@ssw0rd"
$HashedPassWord = ConvertTo-SecureString -String $PassWord -Force -AsPlainText
Import-PfxCertificate -FilePath $CertName -CertStoreLocation Cert:\LocalMachine\Root -Password $HashedPassWord

In the certificate manager:

| Description | Picture |
| Start the certificate manager to import a certificate. | ![]() |
| Browse to pfx file. | ![]() |
| Enter the password. | ![]() |
| Add the certificate to the Trusted Root Certification Authorities. | ![]() |
| Click [Finish] | ![]() |
| Click [Ok] | ![]() |
| Start Settings -> Updates and Security -> For Developpers. Enable sideload apps. |
![]() |
| Click [Close] | ![]() |
| Install the application with powershell. | ![]() |
| The progress bar.... | ![]() |
| Start the application via the Start Menu | ![]() |
| The application has been started successfully | ![]() |












































