dotfiles: register UI.Xaml 2.8 for the account before installing Terminal
`winget install Microsoft.WindowsTerminal` failed on the Windows 10 box,
on every run, with
Installer failed with exit code: 0x80070002 : The system cannot find
the file specified.
and it was never Terminal that failed. Its manifest depends on the
Microsoft.UI.Xaml.2.8 framework package, which winget 1.29.380 installs
first, from a pinned 8.2310.30001.0 appx. A newer build, 8.2501.31001.0,
was already staged on the machine but not registered for the account
running the setup. Windows then stages nothing - "A higher version
8.2501.31001.0 of this package is already installed", AppXDeploymentServer
event 735 - and reports the stage as a success; winget registers the
8.2310 package it believes it staged, by full name; there is no such
package (0x80073CF1); and that is what comes out as "file not found".
The WindowsTerminal step now registers the build that is already there
first: Add-AppxPackage -RegisterByFamilyName, which takes no version and
no elevation, and only when the account has none registered. winget then
finds the dependency met and installs Terminal alone. With none on the
machine either - the fresh box - the registration fails with that same
0x80073CF1, says nothing, and winget installs the framework as before.
Any other failure is a one-line warning, and winget still gets its turn.
It runs through Windows PowerShell: the Appx module does not load in
PowerShell 7 here.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>