]> vilimpoc.org git repositories - dotfiles/blobdiff - README.md
dotfiles: register UI.Xaml 2.8 for the account before installing Terminal
[dotfiles] / README.md
index cf8a85b04a838b0aa3b25e82320667cdd9218d6f..67e6a3b38c50f1f35a74545f72f8a59384cccb7f 100644 (file)
--- a/README.md
+++ b/README.md
@@ -354,6 +354,17 @@ missing or out of date.
   `PATH`; the step warns if it finds one (`winget uninstall
   Anthropic.ClaudeCode` removes it), and the architecture audit shows which
   `claude.exe` wins.
   `PATH`; the step warns if it finds one (`winget uninstall
   Anthropic.ClaudeCode` removes it), and the architecture audit shows which
   `claude.exe` wins.
+- **Windows Terminal gets its framework package registered first.** Terminal is
+  an MSIX that depends on `Microsoft.UI.Xaml.2.8`, which winget installs for it
+  from a pinned build (8.2310.30001.0). When a *newer* build is already on the
+  machine but not registered for the account running the setup, Windows
+  declines to stage the older one, winget then tries to register a package
+  that is not there, and what it prints is `Installer failed with exit code:
+  0x80070002 : The system cannot find the file specified` — with Terminal
+  itself never attempted, on every run. So the batch file first registers the
+  build that is already there (`Add-AppxPackage -RegisterByFamilyName`, no
+  elevation needed), and winget then finds the dependency met. With none on
+  the machine it does nothing, and winget installs the framework as usual.
 - **Rust.** winget installs rustup (`Rustlang.Rustup`, per-user, under
   `%USERPROFILE%\.cargo` and `.rustup`). Its silent install is
   `rustup-init -y -q`, which already sets up a stable toolchain for whatever
 - **Rust.** winget installs rustup (`Rustlang.Rustup`, per-user, under
   `%USERPROFILE%\.cargo` and `.rustup`). Its silent install is
   `rustup-init -y -q`, which already sets up a stable toolchain for whatever