MSIX Start Menu Shortcuts

Copper Contributor

I am looking at repackaging all my apps into msix format so that I can deploy them easily with both SCCM and Intune. One thing I cannot figure out is how to manipulate the start menu entries and place icons into sub folders like I could with traditional msi and App-V applications. I work at quite a large secondary school\college and to have all the apps in the root of the start menu wouldn't be ideal. We tend to group the apps into sub folders in the start menu by department i.e. C:\ProgramData\Microsoft\Windows\Start Menu\Programs\ICT\Python 3.9 (64-bit).lnk but every time I create the folders, move the shortcut and delete any previous folders or unwanted shortcuts and then install the captured msix file it just dumps my shortcut in the root of the start menu and the sub folder is nowhere to be seen. Is it even possible to use sub folders in the start menu with msix packaging?

4 Replies
Hi, please check out our documentation on how to Group applications under a folder in the Start menu - https://docs.microsoft.com/en-us/windows/msix/packaging-tool/create-start-group

@Dian Hartono Hi and thanks for your reply but its erroring out when i try and do this saying its unable to parse the manifest file. Ive a feeling theres prob an issue where i declare it in the name space. Is anybody able to point out where I've gone wrong below please?

 

<?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:uap10="http://schemas.microsoft.com/appx/manifest/uap/windows10/10" xmlns:rescap="http://schemas.microsoft.com/appx/manifest/foundation/windows10/restrictedcapabilities" xmlns:com="http://schemas.microsoft.com/appx/manifest/com/windows10" IgnorableNamespaces="uap uap10 rescap com" xmlns:uap3="http://schemas.microsoft.com/appx/manifest/uap/windows10/3" IgnorableNamespaces="... uap3">
<!--Package created by MSIX Packaging Tool version: 1.2020.1006.0-->
<Identity Name="MicrosoftSmallBasicv1.2" Publisher="CN=SJTR" Version="1.2.0.0" ProcessorArchitecture="x64" />
<Properties>
<DisplayName>Microsoft Small Basic v1.2</DisplayName>
<PublisherDisplayName>Microsoft Corporation</PublisherDisplayName>
<Description>Microsoft Small Basic v1.2</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" />
</Dependencies>
<Applications>
<Application Id="APP" Executable="VFS\ProgramFilesX86\Microsoft\Small Basic\SB.exe" EntryPoint="Windows.FullTrustApplication">
<uap3:VisualElements BackgroundColor="transparent" DisplayName="Microsoft Small Basic" Square150x150Logo="Assets\Square150x150Logo.png" Square44x44Logo="Assets\Square44x44Logo.png" Description="Microsoft Small Basic" VisualGroup="ICT">
<uap:DefaultTile Wide310x150Logo="Assets\Wide310x150Logo.png" Square310x310Logo="Assets\Square310x310Logo.png" Square71x71Logo="Assets\Square71x71Logo.png" />
</uap3:VisualElements>
<Extensions>
<com:Extension Category="windows.comServer">
<com:ComServer>
<com:ExeServer Executable="vfs\programfilesx86\microsoft\edge\application\88.0.705.74\notification_helper.exe">
<com:Class Id="628ace20-b77a-456f-a88d-547db6ceedd5" />
</com:ExeServer>
</com:ComServer>
</com:Extension>
</Extensions>
</Application>
</Applications>
<Extensions>
<com:Extension Category="windows.comInterface">
<com:ComInterface>
<com:Interface Id="c9c2b807-7731-4f34-81b7-44ff7779522b" UseUniversalMarshaler="true">
<com:TypeLib Id="c9c2b807-7731-4f34-81b7-44ff7779522b" VersionNumber="1.0" />
</com:Interface>
<com:TypeLib Id="c9c2b807-7731-4f34-81b7-44ff7779522b">
<com:Version VersionNumber="1.0" LocaleId="0">
<com:Win32Path Path="VFS\ProgramFilesX86\Microsoft\Edge\Application\88.0.705.74\elevation_service.exe" />
<com:Win64Path Path="VFS\ProgramFilesX86\Microsoft\Edge\Application\88.0.705.74\elevation_service.exe" />
</com:Version>
</com:TypeLib>
</com:ComInterface>
</com:Extension>
</Extensions>
<Capabilities>
<rescap:Capability Name="runFullTrust" />
</Capabilities>
</Package>

Hi, can you share the exact error?
Actually, I may see the issue. Since you already have an IgnorableNamespaces, you just needs to add “uap3” to the existing list:

IgnorableNamespaces="uap uap10 rescap com"

What was done instead was add a second time the IgnorableNamespace attribute:

IgnorableNamespaces="... uap3"

Also the 3 dots are there just a placeholder to specify that uap3 should go after any other existing namespace.