4.2 Finding metadata for App Installer file
You can find the metadata you need for an App Installer file Package entry in the AppxManifest.xml file inside the package. To access it, change the package's .msix extension to .zip and open it – inside, you will find the AppxManifest.xml file.
Note: In the case of the main MyID Client Suite msixbundle file, the AppxManifest.xml file is two levels deep rather than one. If you open the package as above you will find an MSIX package inside it – this is the package that contains the AppxManifest.xml file.
The following is an example of the manifest in the MyIDDesktopLauncher package:
<?xml version="1.0" encoding="utf-8"?>
<Package
xmlns="http://schemas.microsoft.com/appx/manifest/foundation/windows10"
xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10"
xmlns:uap3="http://schemas.microsoft.com/appx/manifest/uap/windows10/3"
xmlns:uap4="http://schemas.microsoft.com/appx/manifest/uap/windows10/4"
xmlns:uap10="http://schemas.microsoft.com/appx/manifest/uap/windows10/10"
xmlns:desktop="http://schemas.microsoft.com/appx/manifest/desktop/windows10"
IgnorableNamespaces="uap4 uap10">
<Identity Name="MyIDDesktopLauncher"
Version="1.0.0.5"
Publisher="CN=Intercede Ltd, O=Intercede Ltd, L=Lutterworth, C=GB"
ProcessorArchitecture="x86" />
<Properties>
<DisplayName>MyID Desktop</DisplayName>
<PublisherDisplayName>Intercede Ltd</PublisherDisplayName>
<Description>MyIDDesktop</Description>
<Logo>Assets\StoreLogo.png</Logo>
<uap10:PackageIntegrity>
<uap10:Content Enforcement="on" />
</uap10:PackageIntegrity>
</Properties>
<Resources>
<Resource Language="en-us" />
</Resources>
<Dependencies>
<TargetDeviceFamily Name="Windows.Desktop" MinVersion="10.0.17763.0" MaxVersionTested="10.0.19041.1" />
<!-- the dependency should refer to the main package's Identity.Name -->
<uap4:MainPackageDependency Name="MyIDClientSuite" Publisher="CN=Intercede Ltd, O=Intercede Ltd, L=Lutterworth, C=GB"/>
</Dependencies>
<Applications>
<Application Id="MyIDDesktop" Executable="VFS\ProgramFilesX86\Intercede\DSKLauncher\DSKLauncher.exe"
EntryPoint="Windows.FullTrustApplication">
<uap:VisualElements BackgroundColor="transparent"
DisplayName="MyID Desktop"
Description="MyIDDesktop"
Square150x150Logo="Assets\Square150x150Logo.png"
Square44x44Logo="Assets\Square44x44Logo.png">
<uap:DefaultTile Wide310x150Logo="Assets\Wide310x150Logo.png" >
<uap:ShowNameOnTiles>
<uap:ShowOn Tile="square150x150Logo"/>
<uap:ShowOn Tile="wide310x150Logo"/>
</uap:ShowNameOnTiles>
</uap:DefaultTile>
</uap:VisualElements>
<Extensions>
<uap3:Extension Category="windows.appExecutionAlias"
EntryPoint="Windows.FullTrustApplication"
Executable="VFS\ProgramFilesX86\Intercede\DSKLauncher\DSKLauncher.exe">
<uap3:AppExecutionAlias>
<desktop:ExecutionAlias Alias="MyIDDesktop.exe" />
</uap3:AppExecutionAlias>
</uap3:Extension>
</Extensions>
</Application>
</Applications>
</Package>
The information you need is the Identity node near the top of the file:
<Identity Name="MyIDDesktopLauncher"
Version="1.0.0.5"
Publisher="CN=Intercede Ltd, O=Intercede Ltd, L=Lutterworth, C=GB"
ProcessorArchitecture="x86" />
This corresponds directly to what you would include in your Package entry, with the exception of the Uri value, which is specific to your organization:
<Package Version="1.0.0.5"
Uri="\\my.server.local\Installers$\OptionalPackages\DSKLauncher.msix"
Publisher="CN=Intercede Ltd, O=Intercede Ltd, L=Lutterworth, C=GB"
ProcessorArchitecture="x86"
Name="MyIDDesktopLauncher" />
In scenarios where you want to get the manifest of an installed package, but you do not have the original MSIX that was used to install it, you can use the Get-AppxPackageManifest PowerShell cmdlet to extract it then save it to a file; see.:
docs.microsoft.com/en-us/powershell/module/appx/get-appxpackagemanifest?view=windowsserver2019-ps
The following example demonstrates retrieving the manifest for an install of the MyIDClientSuite, then saving it to a file:
$(Get-AppxPackageManifest -Package $(Get-AppxPackage MyIDClientSuite).PackageFullName).Save("C:\Manifests\MyIDClientSuite\AppxManifest.xml")