Menu Close

Category: Release

MSIX Hero 1.0.14 – extended CLI and bug-fixes

Version 1.0.14 of MSIX Hero is now available for download. This version contains the following changes:

New command line verb appattach

Previously, creating VHD files for MSIX app attach was only possible interactively (with help of MSIX Hero UI). In this version, a new command line verb has been added to make it possible to automate this operation.

The new verb appattach has the following sample usage:

MSIXHeroCLI.exe appattach --package "C:\pkgs\MSIX-Hero.msix" --directory "C:\pkgs\VHD\MSIX-Hero" --extractCert --createScripts

Due to some internals, this command requires administrative privileges’. More information about CLI usage can be found in the following documentation page: Command Line Interface (CLI) Reference > Creating VHD for MSIX app attach (appattach)

Resolved issues

  • It was not possible to open .appinstaller files with UTF-8 BOM (Byte-Order-Mark). The issue has been fixed in this version.
  • If property SystemAppId was present in an opened YAML file, its value was lost on re-saving. Note that this value is valid according to the documentation, but returns validation error from winget and Azure pipelines from the official repository. This is why it is hidden in the MSIX Hero UI. Anyway, in this version any value of SystemAppId is preserved if present in the original file.
  • Winget validation (winget validate command) was not executed at the end of YAML export, if no Windows Terminal Preview was installed. In this build, the command is executed even if a standard stable version of terminal is installed.
  • Some APPX/MSIX manifests could not be parsed correctly. The problem was reported for Konica Minolta packages, but could potentially affect some more. In this version, parsing of these specific manifest files has been fixed.
  • Dependencies tab was empty for packages/manifests using older syntax for prerequisites (<Prerequisites />). In this version, the dependencies are shown correctly.
  • Log files in previous version could contained too many log entries for certificate validation. In this version, some verbose logs are not anymore of type INFO but of a more verbose DEBUG level.
  • YamlDotNet was missing in the About window, section Third-party software. It has been added in this version (great package by the way, kudos to contributors)

Download

The app will be updated automatically in a few hours if you installed it from app installer file. New users can download MSIX Hero from the Download page.

Update impact

Last, but not least. Have you already tested how Update impact (a major highlight of version 0.9.0) works? Below is a comparison between MSIX Hero 1.0.5 and MSIX Hero 1.0.14. You can get similar results by exploring the options in the Ribbon > Tools > Update impact analyzer.

MSIX Hero 1.0.5

Version 1.0.5 of MSIX Hero is now available for download. This is just a minor bug-fix release.

Improvements

  • Getting packages is now generally faster. Results may vary, but a typical gain of 50% shorter loading time shouldn’t be anything unusual.
  • Pressing CTRL+F when a list of packages, volumes or events is focused moves the focus to the search box.

Resolved issues

  • Some older packages or packages with unexpected namespaces could be falsely reported as malformed (the problem was reported in app KONICA MINOLTA Print Experience but there may be potentially some more apps affected by this). The issue has been fixed in this build.
  • In some cases, unexpected values in the package manifest could cause a crash to desktop when selecting an affected package in the installed package list. The issue has been fixed in this build.
  • The progress bar for loading was not being refreshed during the initial loading of packages. The issue has been fixed in this build.
  • Some specific combination of selection, filter and navigation in the package list could trigger a “ghost” selection, which could result in the multi-selection view being presented, even with only a single package being actually selected. The issue has been fixed in this build.

Download

The app will be updated automatically in a few hours if you installed it from app installer file. New users can download MSIX Hero from the Download page.

Update impact

Last, but not least. Have you already tested how Update impact (a major highlight of version 0.9.0) works? Below is a comparison between MSIX Hero 1.0.0 and MSIX Hero 1.0.5. You can get similar results by exploring the options in the Ribbon > Tools > Update impact analyzer.

MSIX Hero 1.0 is a “silent hero”

A new build of MSIX Hero has been just published. This is a major release, which brings a few interesting highlights. One of these additions is the ability to execute certain operations from a command-line interface – silently, without any interaction (thus “silent hero”).

Command-line support

After installing the new package, an app alias MSIXHeroCLI.exe will be available in terminal of your choice (if you haven’t installed Windows Terminal yet, this is a good moment to grab it from github or Microsoft Store).

The command line version of MSIX Hero has currently the following options:

  • Packing folders to MSIX packages, unpacking MSIX packages
  • Signing a package (and updating the manifest accordingly)
    • With a selected combination of PFX file and a password,
    • With a certificate identified by a thumbprint,
    • With default signing settings as defined in program settings
  • Installing a certificate from a certificate file or from a signed MSIX package.
  • Creating a new certificate for self-signing

To get started, type MSIXHeroCLI.exe in terminal and press Enter

You can also get a help for a specific command by executing MSIXHeroCLI.exe <command-name> --help, for example MSIXHeroCLI.exe sign --help

Below are a few command samples:

To sign a package with a PFX file and a password:

MSIXHeroCLI.exe sign --file "c:\signing\cert.pfx" --password "Start123" --increaseVersion Major "c:\msix\unsigned-package.msix"

Note: Syntax for this command uses a limited subset of features and commands of signtool.exe. For example, you can use -f, -p, -t and --sha1 to specify the PFX path, password, timestamp URL and certificate thumbprint respectively. The additional value of MSIX Hero in comparison to signtool.exe is that the package manifest is adjusted automatically.

To pack a folder to an MSIX package

MSIXHeroCLI.exe pack --package "c:\msix\packed.msix" --directory "C:\msix\unpacked"

Note: the switches also support short form -p and -d, which is exactly the format that makeappx.exe supports.

Importing a certificate from a signed package to Trusted People store

The following command let you install a package signed with an untrusted certificate by importing it to the Trusted People store. You have to start MSIXHeroCLI.exe as administrator in order for this to work.

MSIXHeroCLI.exe trust "C:\msix\signed-package-with-untrusted-certificate.msix"

Finally, if execution of a command fails due to an error reported by any SDK-tool (for example, makeappx.exe or signtool.exe) its exit code or error code will be reported as exit code of MSIXHeroCLI.exe.

Read more about the command line interface in the following article:

New indicator representing signature status

In both sidebar and the Package Expert window, a new badge is shown which indicates the status of the signature. When a package is installed, it will be almost always shown as trusted, for example:

Clicking on the publisher name opens a Windows Explorer dialog with the signature properties.

If the package is not signed, the following is shown:

Finally, if the package is signed but the certificate is not trusted, yet another prompt is shown, this time with an extra button for importing the certificate to the Trusted People store with two-clicks (the second click to confirm the UAC dialog).

Showing execution aliases

Execution aliases are now visible in the sidebar, where previously only an information about Start Menu icon was present:

Left picture: MSIX Hero 0.9.1, right picture the new view in MSIX Hero 1.0.0. The UI version of MSIX Hero can be started from the Start menu, but the command line version does not install any icon, and instead relies on the execution alias.

Ability to define global password for package signing

It is now possible to define global password for package signing with PFX. The password will be stored in encrypted form in program configuration, using standard Windows Data Protection API (encryption keys stored in loaded User Profile). In previous versions of MSIX Hero, the password must be typed every time the signing was required.

Note: The settings defined on this screen are fully respected by MSIXHeroCLI.exe when it is started without any extra parameters for certificate selection.

Resolved issues

  • The button Install certificate… in Ribbon > Certificates was not triggering UAC dialog, but instantly failing with access denied error when MSIX Hero was not started as admin. This regression has been fixed in this build, and UAC dialog will be now shown correctly.
  • The authoring tool information stopped showing in the sidebar due to a wrong namespace lookup, a regression introduced in the last version. This issue has been fixed in this build.
  • Switching the type of package signing (from PFX file to Installed certificate or vice-versa) in the Settings dialog could write wrong values for PFX path and/or thumbprint if no other changes were done. This issue has been fixes in this build.
  • Some MSIX packages could not be packed or signed by previous version of MSIX Hero (an error about invalid manifest was thrown). This error in namespace lookup has been fixed in this version.

Download

The app will be updated automatically in a few hours if you installed it from app installer file. New users can download MSIX Hero from the Download page.

Update impact

Last, but not least. Have you already tested how Update impact (a major highlight of version 0.9.0) works? This is the comparison between MSIX Hero 0.9.1 and MSIX Hero 1.0.0. You can get similar results by exploring the options in the Ribbon > Tools > Update impact analyzer.

MSIX Hero 0.9.1

This is just a minor bug-fix release. It fixes or improves the following reported issues:

  • Added recognition of a few popular regular expression patterns for redirection rules (the display text shown in the PSF tab).
  • Packages having PSF executable launcher in folders other than root (for example VFS/...) were shown as having no redirected target. In this version, such packages show correct redirected paths for entry points. Since the issue has been fixed, packages created by Tim Mangan’s PsfTooling are now displayed properly in MSIX Hero.
  • MSIX Hero is now less strict in terms of the expected file name of the PSF launcher. Previously, only typical names like PsfLauncher.exe, PsfLauncher32.exe etc. were considered. Starting from this version, anything that starts with PsfLauncher* is considered to be a potential entry point for PSF. This enables executable names like PsfLauncher1.exe etc. to be shown with their actual target paths (see screenshot above).
  • Additional minor performance and stability optimizations.

Download

The app will be updated automatically in a few hours if you installed it from app installer file. New users can download MSIX Hero from the Download page.

MSIX Hero 0.9 – Understand update impacts and more

A new version of MSIX Hero (0.9) has been released. This build contains new functions and several improvements and fixes to reported issues.

Analyzing update impacts

This new feature lets you compare two packages from the same family (but with different version) and estimate the update impacts. MSIX has an out-of-the-box support for byte-level differencing, which is super handy during updates, where the MSIX source is on a remote location. The MSIX framework is intelligent enough to understand what has actually changed between two versions, and only download the chunks, containing the changed or added content.

With MSIX Hero, you can do a dry-run, and see how much really needs to be re-downloaded. For example, the following picture shows the update impact when updating MSIX Hero from version 0.6 to 0.9:

This means that although the new package contains as much as 67 MB files (25 MB after compression), only 1.9 MB will be downloaded on your computer when executing this particular update path. This is is just around 7.7% of the total package size, a true relief for the msixhero.net server 🙂

You can also use the other tabs to find out about the exact size of added, changed, deleted or unchanged resources, plus an exact list of changed files with their impact on the overall update.

In order to start playing around, press Update impact analyzer in the Tools ribbon and follow the on-screen instructions.

Version 0.9 has a limitation – it can only compare MSIX/APPX packages. Support for bundles will be added later.

Event viewer has been promoted to the main screen

Prior to MSIX Hero 0.9, in order to view MSIX/APPX logs, it was necessary to open a dialog by going to HOME > MSIX event logs.

MSIX Hero Version 8.3

In this new version, the viewer for logs is available directly from the left panel:

MSIX Hero Version 0.9

A few visual changes have been applied:

  • More logs are read at once
  • It is possible to filter the list by using the search box
  • The type of the log is now an icon instead of text
  • Three buttons are displayed in the ribbon to open the system Event viewer with the requested data loaded.

Compact package list now shows architecture instead of the package type

In the compact view, the place of the package type (UWP, Win32 etc.) has been now taken by the architecture (x86, x64 etc). You can still see the old value in the full list view (by dragging the splitter between the list and the sidebar) or in the sidebar.

Left: MSIX Hero 0.8.3. Right: MSIX Hero 0.9.

By the way, it is now possible to sort and group the list by the value of the Architecture column.

Small visual adjustments

There are small visual adjustments in this builds. Most of them are visible in the package list and the ribbon:

  • The background color for contextual tabs changed from green to dark blue:
MSIX Hero 0.8.3
MSIX Hero 0.9
  • Several lines and borders have been removed for some cleaner look and feel:
MSIX Hero 0.8.3
MSIX Hero 0.9.0
  • A button to open Settings has been added at the bottom of the left sidebar.
  • The top bar in the Package Expert window and in the package sidebar is now a bit smaller to allow for more content.

Other changes

  • Some packages with custom namespace prefixes (other than ns or uap) could be read improperly in versions prior to 0.9. This has been fixed in this build.
  • Several operations are now cancellable.
  • A problem with inconsistent tile color in the package list and in the sidebar has been fixed in this build.

Download

The app will be updated automatically in a few hours if you installed it from app installer file. New users can download MSIX Hero from the Download page.

MSIX Hero 0.8.3

A minor update to MSIX Hero has been released. This newest version 0.8.3 contains three changes to the handling of YAML files for winget:

  • When saving a manifest, an extra empty line is now appended at the end of the file
  • The manifest version is NOT added automatically. In previous version, 0.1.0 was used as a default (with an option to edit it). Although the field is a part of the standard definition, it seems that for a time being it may cause false positives and warnings in automated Azure Pipelines after making a pull request. In this build, some adjustments have been made to make sure that the manifest version is not editable and won’t be inserted, unless the YAML file being opened has it defined. Only in this case, the manifest version is visible and editable, in any other case the field won’t be even displayed. Note that this is a temporary solution, and may be changed in the future if validation of pull requests changes
  • It is now possible to open a YAML manifest by passing its full path as the argument to msixhero.exe. Note: previously this functionality was only limited to .appinstaller, .msix and .appx files.

Download

The app will be updated automatically in a few hours if you installed it from app installer file. New users can download MSIX Hero from the Download page.

MSIX Hero 0.8.1 meets winget YAML editor

A new version of MSIX Hero has been just released. There is a new feature which should be especially interesting for authors and contributors of package manifests in the winget repository (see https://devblogs.microsoft.com/commandline/windows-package-manager-preview/ for more details about winget, and https://github.com/microsoft/winget-pkgs to see the git repository for package manifests).

MSIX Hero has now a pretty complete editor which can create, build and open existing manifests (YAML). It simplifies several tasks which are sometimes tedious, for example:

  • It can read file hashes (from local or remote files) and signature hashes (APPX and MSIX)
  • It can recognize the setup type (exe, Nullsoft, InnoSetup, MSI, MSIX, APPX) and set the properties and metadata information accordingly
  • It validates the data in order to ensure, that the manifest fulfills at least minimum requirements for a package to be accepted in winget repository.
  • If installed on the same machine where winget is available, MSIX Hero fires winget CLI validation for each saved manifest.

In order to get to the winget manifest editor:

  • Press FILE > New > Winget manifest to start from scratch
  • Or, in FILE > Open > Winget manifest (YAML) and pick up any existing manifest to open it for editing
  • Or, in the list of installed MSIX packages highlight a package of your interest and open the editor from the contextual ribbon DEVELOPER > Winget manifest (YAML)
  • Finally, there is also a dedicated button in the EDIT ribbon.

Once there, do not forget to use this button for a quick start.

Choosing an existing installer does the following:

  • Getting name, version and publisher. For MSI sources, they are taken from MSI properties ProductName, ProductVersion and Manufacturer. For MSIX, the package identity is used. For other and executable files, file version info API is used.
  • Calculating installer hash (SHA-256)
  • For APPX and MSIX: Calculating signature hash (SHA-256) – if the package is signed
  • Reading additional properties or extrapolating them from other likely sources. For example, MSIX Hero tries to come with a reasonable value for the copyrights and EULA information, license URL, description etc.
  • For MSIX packages, AppMoniker field is also guessed. In the current implementation, this is just the name of the executable being the target of the manifested application.
  • For EXE packages, the type of the setup can be guessed. Currently the recognition of both NSIS and InnoSetup installers is supported. Other executable setups are reported as generic ones, and the silent command line arguments are left to be filled by the user.
  • Based on the name of the package and its publisher, a proposal for the package identifier is also created. Currently, it is just a concatenation of both values (minus spaces) separated by a dot character.

Here is what will be created if an installer (EXE) compiled with InnoSetup is chosen:

Once the manifest is created, it can be commited and pushed via pull request to this repository:

https://github.com/microsoft/winget-pkgs

Readme document explains, how to contribute and mentions a few additional guidelines to follow before submitting a contribution.

Other changes in version 0.8.1:

  • The status bar has been removed, as it only repeated the information visible already in other places.
  • Minor clean-up and adjustments of size and margins of ribbon tabs
  • The default grouping by publisher has been disabled. You can enable it again by going to the VIEW ribbon tab and selecting the right mode from the gallery.

Download

The app will be updated automatically in a few hours if you installed it from app installer file. New users can download MSIX Hero from the Download page.

Update

It seems that this version may produce a manifest which is not quite accepted by pipelines running after opening pull requests. The problem is caused by documented property ManifestVersion. In order to mitigate this issue on pipeline side, an update has been made that disables editing of manifest version. See more information about updated version here:

News / Release / MSIX Hero 0.8.3

MSIX Hero 0.7.1.0

A new version of MSIX Hero is there. This is just a minor update that fixes a bug reported by @BogdanMitrache, where packages having both a definition stored in PSF file config.json AND the Advanced Installer‘s executable wrapper AiStub.exe and/or AiStubElevated.exe were not showing a correctly resolved target path. This version fixes the issue.

Download

The app will be updated automatically in a few hours if you installed it from app installer file. New users can download MSIX Hero from the Download page.

MSIX Hero 0.7.0 lets you manage APPX volumes

A new version of MSIX Hero is there. The big highlight feature of this build is the support for AppxVolumes, but there are also a few smaller improvements and bug fixes, making this a highly recommended update.

Volume manager

By default, all APPX/MSIX installations happen in C:\Program Files\WindowsApps. This directory actually corresponds to the default volume configured on the target machine. The management of volumes is now implemented in MSIX Hero. Version 0.7 can list, add, remove volumes and also mount/dismount them. You can also set the default volume so that your apps will be always installed where you expect them to be present.

All of these new functions are present in a new tab which has been added in the sidebar (the first one being for packages, and the third one containing the system overview, as desribed in the release notes for version 0.6).

All currently available APPX volumes are visible (both mounted and dismounted). On most of machines, there is just one entry by default (the one marked with a green checkmark).

The ribbon for volumes has a new button which opens the New volume dialog:

You can select the target drive and optionally an absolute folder path (standard is \WindowsApps, but this can be changed to whatever you like). Additionally, there is a checkbox for marking the new volume as the default one. Bear in mind, that every partition/disk can the host of maximum one volume, and this is why some disk letters may not be available in this dialog.

The context menu and the contextual ribbon for every volume has the following options:

The availability of them depends on the volume state, for example you cannot remove or dismount a volume that is currently your default one.

Moving packages between volumes

Setting up the default volume ensures that all future package installations will be automatically saved there. What about changing the installation path of an already installed app?

To move an app, go to the Packages tab and select the package to be moved. Its contextual tab should have a new button Change volume…

Pressing it opens another dialog, where the desired volume can be changed.

Note: On a standard machine with no extra options, there is usually just a single volume available. At least one additional volume has to be created in order to move any package.

Package integrity settings

For packages that support it, the integrity settings are now parsed and displayed in the package sidebar / window:

More information about Package Integrity Enforcement: https://docs.microsoft.com/en-us/windows/msix/package/signing-package-overview#package-integrity-enforcement

Other changes

  • There is now an extra confirmation window shown before removing a package. The dialog can be disabled in MSIX Hero settings in order to bring back the old behavior (immediate removal).
  • Minor changes in the ordering of buttons in contextual Manage tab for the packages – the button to run the package has been moved and is now shown at the first position.
  • There was a typo in the name of the Home and work networks. The issue is now fixed.
  • The link to open a new folder after creating a modifiction package stub was broken. This issue is now fixed.

Download

The app will be updated automatically in few hours if you installed it from app installer file. New users can download MSIX Hero from the Download page.

Your feedback is important, let me which other features you would like to see in MSIX Hero.

MSIX Hero 0.6.0 makes most of MSIX on your system

A new version of MSIX Hero is there. This build has two new features and several other improvements and bug fixes.

New tab: System status

System Status

A sidebar has been added, which changes the mode between the packages list and the new view showing the status of your system.

This is a hub for settings and convenient shortcuts for set-up and maintenaince. It has currently four sections:

  • Developer and sideloading: Enabling and disabling of side-loading and the developer mode.
  • Automatic updates of Store apps: Enabling and disabling automatic download of new versions of apps managed by Microsoft Store.
  • Repackaging on this machine: This is useful for MSIX IT Pros doing repackaging with tools like MSIX Packaging Tool, Advanced Installer, InstallShield, RayPack etc. With a single click, the user can view which services and processes are running, but should be rather disabled in order to avoid repackaging “noise”. It currently covers a bunch of services (for example Windows Update, Windows Search etc.) and also some running processes (Windows Installer, Global Assembly Cache Tool etc.). The list is dynamic and only shows the services and processes that are actually applicable to your environment. For example, below are three suggestions from MSIX Hero, one about still active Windows Update, one about running process (msiexec), and one about a generic setting which is already correctly set-up.
  • MSIX Tooling: This is an experimental view which shows which apps capable of creating, editing or repackaging to MSIX format are currently installed. The selection is currently limited to apps distributed in MSIX format and listed here: https://docs.microsoft.com/en-us/windows/msix/partners. If some app from the list is not yet installed, a button to open its Store page will be shown:
MSIX Tools

Future versions of MSIX Hero will expand this concept by also including selected apps not available in the Store. A feedback about priorities is always welcome!

Capabilities

Capabilities are one of the core security features of APPX/MSIX apps. A declarative manifest from a developer defines upfront what each app may ask for and which extra security/privacy risk is to be attributes with it. The capabilities are easy to discover in manifest files (XML), but reading them is tedious and sometimes confusing due to their cryptic names.

This is where MSIX Hero jumps in, by providing a human-friendly overview of capabilities, separating them to functional groups and with a nice touch of icons and actual name. For example, this is what Adobe XD MSIX app can access when installed on your machine:

MSIX Capabilities

Other improvements

  • In the Dependencies tab, Windows 10 names for both minimal and tested OS are now clickable and open Wikipedia article about Windows 10 version history.
Windows 10 names now clickable
  • Opening MSIX Log Viewer is now much faster. Additionally, it fetches more records at once.
  • Progress bar for loading packages is now displayed directly over the package lists (does not cover the sidebar or other controls) and its messages are now using a slightly different wording.

Resolved issues

  • Sometimes when refreshing the list of installed packages for all users and having at the same time a specific package selected, the refresh routine would enter an endless loop. This is now fixed.
  • For early Windows 10 versions not supporting MSIX, a caption MSIX Core was added automatically. This is now fixed, the caption is only added if and only if the actual target device family name is MSIXCore.Desktop.
  • In previous build due to a regression it was sometimes possible to de-sync normal packages view and its wider variant with columns. This is now fixed.
  • Opening a package without a manifest file could crash the Package Expert window. The issue is now fixed.

Download

The app will be updated automatically in few hours if you installed it from app installer file. New users can download MSIX Hero from the Download page.

Your feedback is important, let me which other features you would like to see in MSIX Hero.