9621f90325
Windows aliases a profile folder whose name has a space, a dot, or an accented character (FIRST~1.LAS, STONE~1.ZEN, RUBN~1). PowerShell's FileSystem provider then throws "does not exist" the moment such a path reaches a provider cmdlet, which every Node/Electron stage hits through Tee-Object and the desktop stage hits again probing the binary it just built. The install fails on an artifact that is sitting on disk. install.ps1 already tried to expand these, but only via COM and only for TEMP/TMP. COM cannot expand an alias on a non-English locale, and it cannot expand one at all when 8dot3 generation is disabled or the alias is stale -- both return the short path unchanged. LOCALAPPDATA was never normalized either, so InstallDir stayed short even when TEMP got fixed. Three resolvers now run in order, each covering what the last one cannot: kernel32!GetLongPathNameW (locale-independent), COM (P/Invoke blocked), and profile-root substitution (nothing to resolve -- rebuild on a root we can prove is long). All five profile-rooted variables are normalized, and HermesHome/InstallDir are re-derived from them. An explicitly passed -HermesHome/-InstallDir is normalized in place, never replaced. Every resolver degrades to returning its input, so a host where none apply behaves exactly as before. Rewrites are logged to stderr: this bug class has only ever been reported as a bare "does not exist" with no hint that a short alias was involved. Co-authored-by: Sahil-SS9 <218421507+Sahil-SS9@users.noreply.github.com>