You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/packaging/installer.mdx
+38Lines changed: 38 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -31,6 +31,44 @@ The Windows installer will extract the application to `%LocalAppData%\{packId}`,
31
31
32
32
The `current` directory will be fully replaced [while doing updates](../integrating/overview.mdx). The other two files added by Velopack (`Update.exe` and `sq.version`) are crucial and are required files for Velopack to be able to properly update your application.
33
33
34
+
### Windows MSI Installer
35
+
In addition to `Setup.exe`, Velopack can generate a `.msi` installer using WiX 5. The MSI provides full Windows Installer integration, including support for per-machine installs to Program Files, Group Policy deployment, and standard Add/Remove Programs entries.
36
+
37
+
To enable MSI generation, add the `--msi` flag to your `vpk pack` command. The MSI is built alongside `Setup.exe` during packaging.
38
+
39
+
#### Install Location
40
+
The `--instLocation` option controls where the MSI will install:
41
+
-`PerUser` — installs to `%LocalAppData%\{packId}` (HKCU registry, no elevation required)
42
+
-`PerMachine` — installs to `Program Files\{publisher}\{packTitle}` (HKLM registry, requires elevation)
43
+
-`Either` (default) — the user chooses during installation
44
+
45
+
#### MSI Options
46
+
| Option | Description |
47
+
|--------|-------------|
48
+
|`--msi`| Enable MSI generation |
49
+
|`--msiVersion`| Override the product version (must be a valid MSI version, i.e. `x.x.x.x`) |
50
+
|`--instLocation`| Set install scope: `PerUser`, `PerMachine`, or `Either` (default) |
51
+
|`--instWelcome {path}`| Welcome message shown during install (`.txt` or `.md`) |
52
+
|`--instLicense {path}`| License agreement (`.txt`, `.md`, or `.rtf`) |
53
+
|`--instReadme {path}`| Readme message (`.txt` or `.md`) |
54
+
|`--instConclusion {path}`| Conclusion message (`.txt` or `.md`) |
55
+
|`--msiBanner {path}`| Top banner image for MSI dialogs (`.bmp`, 493x58) |
56
+
|`--msiLogo {path}`| Background logo for MSI dialogs (`.bmp`, 493x312) |
57
+
58
+
#### Directory Structure
59
+
The MSI installs the same directory layout as `Setup.exe`:
60
+
```
61
+
{installFolder}
62
+
├── current
63
+
│ ├── YourFile.dll
64
+
│ ├── sq.version
65
+
│ └── YourApp.exe
66
+
├── Update.exe
67
+
└── YourApp.exe (execution stub)
68
+
```
69
+
70
+
After installation, updates work identically via `Update.exe` regardless of whether the app was installed with `Setup.exe` or the `.msi`.
71
+
34
72
## MacOS Overview
35
73
The MacOS installer will be a standard `.pkg` - which is just a bundle where the UI is provided by the operating system, allowing the user to pick the install location. The app will be launched automatically after the install (mirroring the behavior on Windows) because of a `postinstall` script added by Velopack.
0 commit comments