diff --git a/crates/uffs-update/app.manifest b/crates/uffs-update/app.manifest index af7b450f1..bfbac68b9 100644 --- a/crates/uffs-update/app.manifest +++ b/crates/uffs-update/app.manifest @@ -3,20 +3,26 @@ SPDX-FileCopyrightText: 2025-2026 SKY, LLC. SPDX-License-Identifier: MPL-2.0 - uffs-update application manifest. + uffs-update application manifest — deliberately MINIMAL. - CRITICAL: the `asInvoker` requestedExecutionLevel below is what stops - Windows' "Installer Detection" heuristic from force-elevating this binary. - That heuristic auto-flags executables whose NAME contains update/setup/ - install/patch as installers needing UAC — so `uffs-update.exe` would - otherwise fail to launch from the non-elevated `uffs.exe` with - ERROR_ELEVATION_REQUIRED (os error 740), breaking every `uffs --update` - operation. The self-update helper only rewrites files in the user's own - install dir; it never needs Administrator. + CRITICAL: the `asInvoker` requestedExecutionLevel below is the *one* thing + this manifest exists to declare. It stops Windows' "Installer Detection" + heuristic from force-elevating this binary purely because its NAME contains + "update" — without it, `uffs.exe` (non-elevated) cannot spawn + `uffs-update.exe`; it fails with ERROR_ELEVATION_REQUIRED (os error 740), + breaking every `uffs --update` operation. The self-update helper only + rewrites files in the user's own install dir; it never needs Administrator. + + WHY MINIMAL — nothing but `trustInfo`: an earlier, richer version of this + manifest (with ``, a `` supportedOS block, + and ``) made the cross-compiled `uffs-update.exe` fail to + start at all with ERROR_SXS_CANT_GEN_ACTCTX (os error 14001, "side-by-side + configuration is incorrect"). `` in an application manifest + makes the loader attempt a side-by-side assembly resolution that can fail; + this helper is a plain console binary that needs none of those settings. Keep + this file to `trustInfo`-only so there is zero SxS activation-context surface. --> - - @@ -24,18 +30,4 @@ - - - - - true - - - - - - - - - diff --git a/crates/uffs-update/build.rs b/crates/uffs-update/build.rs index 50a72b229..7ac63fc94 100644 --- a/crates/uffs-update/build.rs +++ b/crates/uffs-update/build.rs @@ -18,6 +18,10 @@ //! (os error 740) — breaking every `uffs --update` operation on Windows. The //! helper only rewrites files in the user's install dir; it never needs admin. //! +//! The manifest is intentionally minimal (`trustInfo`-only): a richer earlier +//! version tripped `ERROR_SXS_CANT_GEN_ACTCTX` (os error 14001) so the binary +//! would not start at all. See `app.manifest` for the full rationale. +//! //! Inert on non-Windows / non-MSVC targets (the helper ships windows-msvc). fn main() {