How to install Store apps for offline use (pre-generated license file for each app)?

ZorkLVM

Member
Messages
47
Reaction score
4
I'm still learning how the store apps work.

I'd like to be able to install offline and be able to run my apps (calculator for example) without connecting to the internet.

Is that even possible? Right now all of my apps just close on first-launch without any reason given (no license.xml, I think). Once connected, they work.
 
Not practically. The UWP applications model requires every app to be licensed (even free apps). Distributed apps come in two different types:

1. Default ("inbox") Apps included in Windows, or packages downloaded from the MS Store back-end, must allow ClipSvc (Client Licensing Service) to connect at least once to the WU back-end and grant them a per-machine license. After that, no online access is required to run the app.

2. Sideloaded apps are normally provided with a matching License.xml from the publisher, which is loaded when provisioning the App.

Examples include:​
- winget package on GitHub​
- NVIDIA, Dell, AMD and Intel command center or control panel apps installed from an EXE​

3. UWP licenses are granted on a per-machine basis. If you re-image a PC, the new Windows has a different system SID, so any previous licenses are invalidated because the machine instance is different. The only way this would work is if you DISM captured a system which connected at least once to WU, but then the image can't be generalized (which removes the licenses).

The captured instance could be re-installed as the exact same Windows instance, but cannot be used for other PC's unless you wanted two perfectly cloned systems with duplicate SID's.
 
I seem to have got it working -- on Win10 at least, haven't tried Win11 yet.

All apps fully updated and working 100% offline, never online.

Used the license files from install.wim\ProgramData\Microsoft\Windows\ClipSVC\Install\Apps

Code:
set "DEPEND06=Microsoft.UI.Xaml.2.8_8.2310.30001.0_x64__8wekyb3d8bbwe.appx"
set "DEPEND07=Microsoft.VCLibs.140.00.UWPDesktop_14.0.33728.0_x64__8wekyb3d8bbwe.appx"
set "PKGFILE01=Microsoft.DesktopAppInstaller_2024.1108.1842.0_neutral_~_8wekyb3d8bbwe.msixbundle"
set "LICFILE01=microsoft.desktopappinstaller_8wekyb3d8bbwe.xml"

dism /Image:"%MOUNTDIR%" /Add-ProvisionedAppxPackage /PackagePath:"%PKGPATH%\%PKGFILE01%" ^
    /DependencyPackagePath:"%DEPPATH%\%DEPEND06%" ^
    /DependencyPackagePath:"%DEPPATH%\%DEPEND07%" ^
    /LicensePath:"%LICPATH%\%LICFILE01%" ^
    /Region:US ^
    /StubPackageOption:InstallFull

License files on Win10 and 11 seem to be identical.
 
The shared XML files are identical, because W10 & 11 are considered the same for UWP licensing.

What you're seeing is some W10 apps got retired, and new W11 apps got added. Here's a list of unique license files:
Code:
@(
foreach ($File in (Get-ChildItem 'F:\XML_files\W10_22H2')) {
    $Hash = Get-FileHash $File.FullName -Algorithm MD5

    [PSCustomObject] @{
        Filename = Split-Path $Hash.Path -Leaf
        FullPath = $Hash.Path
        Hash = $Hash.Hash
    }
}

foreach ($File in (Get-ChildItem 'F:\XML_files\W11_25H2')) {
    $Hash = Get-FileHash $File.FullName -Algorithm MD5

    [PSCustomObject] @{
        Filename = Split-Path $Hash.Path -Leaf
        FullPath = $Hash.Path
        Hash = $Hash.Hash
    }
}
) | Group-Object -Property Filename | where { $_.Count -ne 2 } | foreach {
    [PSCustomObject] @{
        Name = $_.Name
        Folder = ($_.Group.FullPath -split '\\')[-2]
    }
} | Sort-Object Folder,Name

Code:
Name                                                             Folder
----                                                             ------
microsoft.549981c3f5f10_8wekyb3d8bbwe.xml                        W10_22H2
microsoft.getstarted_8wekyb3d8bbwe.xml                           W10_22H2
microsoft.microsoft3dviewer_8wekyb3d8bbwe.xml                    W10_22H2
microsoft.mixedreality.portal_8wekyb3d8bbwe.xml                  W10_22H2
microsoft.mspaint_8wekyb3d8bbwe.xml                              W10_22H2
microsoft.office.onenote_8wekyb3d8bbwe.xml                       W10_22H2
microsoft.people_8wekyb3d8bbwe.xml                               W10_22H2
microsoft.skypeapp_kzf8qxf38zg5c.xml                             W10_22H2
microsoft.wallet_8wekyb3d8bbwe.xml                               W10_22H2
microsoft.windowscommunicationsapps_8wekyb3d8bbwe.xml            W10_22H2
microsoft.windowsmaps_8wekyb3d8bbwe.xml                          W10_22H2
microsoft.xboxapp_8wekyb3d8bbwe.xml                              W10_22H2
microsoft.xboxgameoverlay_8wekyb3d8bbwe.xml                      W10_22H2
microsoft.zunevideo_8wekyb3d8bbwe.xml                            W10_22H2

clipchamp.clipchamp_yxz26nhyzhsrt.xml                            W11_25H2
microsoft.applicationcompatibilityenhancements_8wekyb3d8bbwe.xml W11_25H2
microsoft.av1videoextension_8wekyb3d8bbwe.xml                    W11_25H2
microsoft.avcencodervideoextension_8wekyb3d8bbwe.xml             W11_25H2
microsoft.bingnews_8wekyb3d8bbwe.xml                             W11_25H2
microsoft.bingsearch_8wekyb3d8bbwe.xml                           W11_25H2
microsoft.gamingapp_8wekyb3d8bbwe.xml                            W11_25H2
microsoft.hevcvideoextension_8wekyb3d8bbwe.xml                   W11_25H2
microsoft.microsoftteamsapp_8wekyb3d8bbwe.xml                    W11_25H2
microsoft.mpeg2videoextension_8wekyb3d8bbwe.xml                  W11_25H2
microsoft.outlookforwindows_8wekyb3d8bbwe.xml                    W11_25H2
microsoft.paint_8wekyb3d8bbwe.xml                                W11_25H2
microsoft.powerautomatedesktop_8wekyb3d8bbwe.xml                 W11_25H2
microsoft.rawimageextension_8wekyb3d8bbwe.xml                    W11_25H2
microsoft.sechealthui_8wekyb3d8bbwe.xml                          W11_25H2
microsoft.todos_8wekyb3d8bbwe.xml                                W11_25H2
microsoft.windows.devhome_8wekyb3d8bbwe.xml                      W11_25H2
microsoft.windowsnotepad_8wekyb3d8bbwe.xml                       W11_25H2
microsoft.windowsterminal_8wekyb3d8bbwe.xml                      W11_25H2
microsoftcorporationii.quickassist_8wekyb3d8bbwe.xml             W11_25H2
microsoftwindows.client.webexperience_cw5n1h2txyewy.xml          W11_25H2
microsoftwindows.crossdevice_cw5n1h2txyewy.xml                   W11_25H2
 
Some of the Windows 11 apps also seem to have different version numbers than their Win 10 equivalent.
Microsoft.WindowsCamera_8wekyb3d8bbwe is the same version for both OS but has different license files.
Without a business account I'm unable to download license files from the store to do a further analysis.

I add the apps to an offline image with dism /add-provisionedappxpackage /packagepath *** /dependencypackagepath ***/licensepath *** although /skiplicense should work for apps that come preinstalled as there is a license included with the install.wim. Don't know why they hide license files for included apps from winget (sell business accounts I suppose).
 
MS Store for Business (and Store for EDU) was retired a while back. So that entire model of doing things went away. /shrug
 
It didn't go away it switched over to an Azure AD account (I think) for a while then became a Microsoft Entra Id account which is currently what is required to download from msstore. The latter account is currently required to get license files for offline distribution. Basically, a business account.
 
Back
Top