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:
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.
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.
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: