Blog Post

Windows IT Pro Blog
5 MIN READ

MSIX support introduced in Insider Build 17682

Nona Sirakova's avatar
Nona Sirakova
Icon for Microsoft rankMicrosoft
Jun 08, 2018

We are excited to announce that starting with Build 17682, the Windows client platform supports MSIX! With this build, you can try many of the MSIX features we showed at BUILD. For example, you can package, bundle and sign applications with our tools. In addition, you can distribute with auto updates through the Appinstaller file.

 

This is only the first stage in our MSIX journey, and we are excited to share it with you early and to gather your feedback! In subsequent stages we are working to add Store support and richer tools, to give you the finest experience transitioning to MSIX, creating new MSIX apps and maintaining existing MSIX apps!

 

To create and package apps for client-side testing, you can now use  the associated Windows SDK. Specifically, to create a MSIX package, use the MakeAppX Tool, which now supports MSIX!

 

To get instructions on running MakeAppx with MSIX, run this command:  <makeappxLoc>\makeappx.exe /?

 

Here's a sample output:

 

<navigate to makeappx location>

 .\makeappx.exe /?

Microsoft (R) MakeAppx Tool

Copyright (C) 2013 Microsoft.  All rights reserved.

 

Usage:

------

    MakeAppx <command> [options]

 

Valid commands:

---------------

    pack        --  Create a new app package from files on disk

    unpack      --  Extract an existing app package to files on disk

    bundle      --  Create a new app bundle from files on disk

    unbundle    --  Extract an existing app bundle to files on disk

    encrypt     --  Encrypt an existing app package or bundle

    decrypt     --  Decrypt an existing app package or bundle

    convertCGM  --  Convert a source content group map (CGM) to the final content group map

    build       --  Build packages using a packaging layout file

 

For help with a specific command, enter "MakeAppx <command> /?"

 

 

<navigate to makeappx location>

 .\makeappx.exe bundle /?

Microsoft (R) MakeAppx Tool

Copyright (C) 2013 Microsoft.  All rights reserved.

 

Usage:

------

    MakeAppx bundle [options] /d <content directory> /p <output bundle name>

    MakeAppx bundle [options] /f <mapping file> /p <output bundle name>

    MakeAppx bundle [options] /d <content directory> /ep <encrypted output bundle name> /kf MyKeyFile.txt

    MakeAppx bundle [options] /f <mapping file> /ep <encrypted output bundle name> /kt

 

Description:

------------

    Creates an app bundle at <output bundle name> by adding all files from

    either <content directory> (including subfolders) or a list of files within

    <mapping file>.  If either source contains a bundle manifest, it will be

    ignored.

 

    Using /p will result in the bundle being unencrypted, while using /ep will

    result in the bundle being encrypted. If you use /ep you must specify

    either /kt or /kf.

 

Options:

--------

    /bv: Specifies the version number of the bundle being created. The version

        must be in dotted-quad notation of four integers

        <Major>.<Minor>.<Build>.<Revision> ranging from 0 to 65535 each. If the

        /bv option is not specified or is set to 0.0.0.0, the bundle is created

        using the current date-time formatted as the version:

        <Year>.<Month-Day>.<Hour-Minute>.<Second-Millisecond>.

    /mo: Generates a bundle manifest only, instead of a full bundle. Input

        files must all be package manifests in XML format if this option is

        specified.

    /fb: Generates a fully sparse bundle where all packages are references to

        packages that exist outside of the bundle file

    /kf: Use this option to encrypt or decrypt the package or bundle using a

        key file. This option cannot be combined with /kt.

    /kt: Use this option to encrypt or decrypt the package or bundle using the

        global test key. This option cannot be combined with /kf.

    /o, /overwrite: Forces the output to overwrite any existing files with the

        same name. By default, the user is asked whether to overwrite existing

        files with the same name. You can't use this option with /no.

    /no, /noOverwrite: Prevents the output from overwriting any existing files

        with the same name. By default, the user is asked whether to overwrite

        existing files with the same name. You can't use this option with /o.

    /v, /verbose: Enables verbose output of messages to the console.

    /?, /help: Displays this help text.

 

Examples:

---------

    MakeAppx bundle /v /d "C:\My Files" /p MyBundle.msixbundle

    MakeAppx bundle /v /o /bv 1.0.1.2096 /f MyMapping.txt /p MyBundle.msixbundle

    MakeAppx bundle /v /o /bv 1.0.1.2096 /f MyMapping.txt /p MyBundle.msixbundle /fb

    MakeAppx bundle /v /o /bv 1.0.1.2096 /f MyMapping.txt /ep MyBundle.emsixbundle /kf MyKeyFile.txt

    MakeAppx bundle /v /o /bv 1.0.1.2096 /f MyMapping.txt /ep MyBundle.emsixbundle /kt

 

    MakeAppx bundle /v /d "C:\My Files" /p MyBundle.appxbundle

    MakeAppx bundle /v /o /bv 1.0.1.2096 /f MyMapping.txt /p MyBundle.appxbundle

    MakeAppx bundle /v /o /bv 1.0.1.2096 /f MyMapping.txt /p MyBundle.appxbundle /fb

    MakeAppx bundle /v /o /bv 1.0.1.2096 /f MyMapping.txt /ep MyBundle.eappxbundle /kf MyKeyFile.txt

    MakeAppx bundle /v /o /bv 1.0.1.2096 /f MyMapping.txt /ep MyBundle.eappxbundle /kt

 

Format of mapping files:

------------------------

    Mapping files must begin with a line containing the string "[Files]",

    followed by lines describing the packages to add to the bundle. Each file

    is described by a pair of paths in quotation marks, separated by spaces

    or tabs, representing its source (on disk) and destination (in bundle).

 

Example mapping file:

---------------------

    [Files]

    "C:\MyApp\MyApp_x86.msix"                 "MyApp_x86.msix"

    "C:\Program Files (x86)\ResPack.msix"    "resources\resPack.msix"

    "\\MyServer\path\ResPack.msix"           "Respack.msix"

    "my app files\respack.msix"              "my app files\respack.msix"

 

    [Files]

    "C:\MyApp\MyApp_x86.appx"                 "MyApp_x86.appx"

    "C:\Program Files (x86)\ResPack.appx"    "resources\resPack.appx"

    "\\MyServer\path\ResPack.appx"           "Respack.appx"

    "my app files\respack.appx"              "my app files\respack.appx"

 

Format of key files:

------------------------

    Key files must begin with a line containing the string "[Keys]",

    followed by lines describing the keys to encrypt the package with. Each key

    is described by a pair of strings in quotation marks, separated by spaces

    or tabs. The first string represents the base64 encoded 32-byte key ID and the second string

    represents the base64 encoded 32-byte encryption key.

Updated Mar 03, 2022
Version 4.0
  • Amit Kumar's avatar
    Amit Kumar
    Brass Contributor

    Hi , can I use our existing appv 5.1 packages and convert to MSIX using this tool ? Also, I have a vendor .msi and would like to know if this can be converted to .msix ?

  • No, you can't use MakeAppxTool to directly do these conversions. We are working on a tool that can address some/all of your questions above.  Please, stay tuned for an announcement on that topic in the near future.

     

    If you need to convert from MSI to MSIX  now, you can use the Desktop App Converter to convert a MSI to .appx and then use the MakeAppxTool to convert from .appx to MSIX.

  • Dorel Pîslan's avatar
    Dorel Pîslan
    Copper Contributor

    Hi,

    How exactly do I convert an Appx into a MSIX ?
    What is the command line of makeappx that does that?

  • Dorel Pîslan

    1. Open power shell in admin mode
    2. In power shell navigate to makeappx location: C:\Program Files (x86)\Windows Kits\10\bin\<SDK number>\x64\makeappx.exe
    3. Say my appx app named TestApp_x64.appx and it is at location: C:\Users\nonasir\Documents\TestApp
    4. Unpack the existing appx in folder UnpackedApp: .\makeappx.exe unpack /p "C:\Users\nonasir\Documents\TestApp\TestApp_x64.appx" /d "C:\Users\nonasir\Documents\TestApp\UnpackedApp"
    5. Repack the app as MSIX:   .\makeappx.exe pack /v /h SHA256 /d "C:\Users\nonasir\Documents\TestApp\UnpackedApp" /p C:\Users\nonasir\Documents\TestApp\PackedMSIX\NewlyPackagedApp.msix
    6. At this point, I'll have NewlyPackagedApp.msix in my PackedMSIX folder.
  • Nona Sirakova I am Repackager, If I want to do any modifications/customizations to Vendor MSI, I do by using MST file.

    now, how can I convert MSI including respective MST or MSP to MSIX, could you please know me the steps.

    can we convert using Admin studio, InstallShield?

     

  • Hi Jyothirmayi Bhatta,

    You can start by converting with the MS Packaging tool (more details here: https://techcommunity.microsoft.com/t5/MSIX-Blog/MSIX-Packaging-Tool-Preview-is-now-available-from-the-Microsoft/ba-p/216204 ) .

     

    In the Packaging Tool, you'll load your MSI, then pass your MST/MSP files as arguments to the MSI. 

     

    If you run into issues, please file a bug using the feedback hub, and please capture logs so we can repro your issue.

     

    For conversion with Admin Studio or Install Shield - if they support MSIX conversion at this point, you should be able to use them but I don't have instructions for these tools.

     

    Thanks,

    Nona