Commit 7f03e85
committed
Setup.iss: user-mode install via /CURRENTUSER (PR-B)
Extends the existing Inno Setup installer with a /CURRENTUSER flag
that routes to a complete user-mode install path. Default behavior
(admin, system-mode) is unchanged.
User-mode (/CURRENTUSER) flow:
1. Drift-detect: checks ProjFS enabled + EnableProjFSOnAllDrives
task registered with current hash marker
2. If drift detected: self-elevates via /ADMINSTAGE=true to enable
ProjFS and register the task from pre-built embedded XML
3. Deploys payload to %LocalAppData%\GVFS\Versions\<version>\
4. Creates/swaps Current junction with verification + rollback
5. Updates user PATH (HKCU) and GVFS env vars
6. Registers per-user \GVFS\AutoMount logon task (conhost --headless)
7. GCs old versions (keeps most recent 2)
Build changes:
- GVFS.Installers.csproj: BuildProjFSTaskXml target runs
build-task-xml.ps1 and passes output to ISCC
- Setup.iss: PrivilegesRequiredOverridesAllowed=commandline
Review fixes incorporated:
- /ADMINSTAGE=true (not bare /ADMINSTAGE) for Inno Setup param parsing
- Junction rollback reads old target via fsutil reparsepoint query
and actually restores it via mklink /J
- Logon task XML declares UTF-8 encoding (matches SaveStringToFile)
Assisted-by: Claude Opus 4.8
Signed-off-by: Tyrie Vella <tyrielv@gmail.com>1 parent 6714021 commit 7f03e85
2 files changed
Lines changed: 531 additions & 31 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
3 | 3 | | |
4 | 4 | | |
5 | 5 | | |
| 6 | + | |
| 7 | + | |
6 | 8 | | |
7 | 9 | | |
8 | 10 | | |
| |||
24 | 26 | | |
25 | 27 | | |
26 | 28 | | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
27 | 33 | | |
28 | | - | |
| 34 | + | |
29 | 35 | | |
30 | 36 | | |
31 | 37 | | |
| |||
0 commit comments