Menu Close

Tag: winget

MSIX Hero 2.2: Winget v1, app attach and productivity enhancements

New version of MSIX Hero is available. Below is the list of recent changes:

View directories, files, registry keys and values in your packages

Package properties have been redesigned to make space for two new tab: Files and Registry. They provide the overview of resources deployed by each package. For files, there is a button to show its content in a default editor.

This feature has been implemented for both installed packages and for compressed packages (MSIX) opened directly.

Winget Editor now supports v1 schema

Winget has moved on and has now more mature and feature-packed schema in version 1.0. MSIX Hero can now open and create files using the new schema (note: since the old schema has become obsolete, there is a little breaking change that the old formats cannot be opened or saved anymore).

New schema defines several new fields, which are now also supported directly from the GUI.

BTW: MSIX Hero support for Winget is not limited to MSIX – other setup types are also supported!


MSIX app attach – multiple files conversion + support for VHDX and CIM

MSIX app attach conversion dialog now supports multiple input files (similarly to how Package Signing handles them) and supports further output formats: VHDX and CIM (next to the already supported VHD). Note: Support for CIM is currently experimental.

By the way: App attach files can be also generated using MSIX Hero Command Line Interface.

New navigation structure for package properties

Package properties have been reorganized:

  • Capabilities are now in the Properties tab (previously they were in Content)
  • Optional content is now in the Installation tab (previously in Content)
  • PSF is now a sub-item of the Content tab (renamed to Package Support Framework) – previously, it was a root tab.
  • New tabs for files and registry have been added in the Content tab.
  • Second level of tabs is now vertical and uses icons instead of texts.

Other changes

  • The option to mount a registry has been removed – the new Registry control makes it obsolete (9eb4961c).
  • Improved parsing of errors reported by makeappx.exe (a02b4ac9).
  • Windows 10 21H1 is now correctly recognized by its marketing name (May 2021 Update) in various places (52b44688).
  • Minor UI improvements.

Resolved issues

  • Fixed incorrect first-time validation of package signing settings, where the information about missing PFX files was shown (ca38766f).
  • Fixed UTF-8 handling in saved files (a02b4ac9).
  • Fixed the button to open Store page that was available for non-store apps (bb7ef0f3).
  • Fixed NullReferenceException when copying install or user-profile path from the OPEN flyout (2f7bdf98).

The new version can be downloaded from the Download page or from the GitHub Releases 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

Getting MSIX Hero with winget

Thanks to folks from Microsoft, MSIX Hero is also available in the repository of winget packages (https://github.com/microsoft/winget-pkgs/tree/master/manifests/MarcinOtorowski/MSIXHero). This means that installing MSIX Hero is now even easier than before, provided that you have a winget client installed.

If you haven’t tried it yet, I highly recommend getting it now for testing and previewing of how the official Windows package manager works. You can get the client from the following URL:

https://github.com/microsoft/winget-cli/releases

And then discover and install apps using a few basic commands (type winget to see help). For example, this is how you install MSIX Hero (the newest version) using exactly 24 key strokes:

winget install msixhero

Have fun with testing!