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.