Skip to content

Commit f564edb

Browse files
committed
Hijack this PR with some MSI info
1 parent af1d52a commit f564edb

1 file changed

Lines changed: 38 additions & 0 deletions

File tree

docs/packaging/installer.mdx

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,44 @@ The Windows installer will extract the application to `%LocalAppData%\{packId}`,
3131

3232
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.
3333

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+
3472
## MacOS Overview
3573
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.
3674

0 commit comments

Comments
 (0)