[packaging] Add Windows installer build doc

This commit is contained in:
Vladimir Stoilov 2025-02-27 16:47:46 +02:00
parent 1d15b45341
commit 22f8333ead
No known key found for this signature in database

101
packaging/README.md Normal file
View file

@ -0,0 +1,101 @@
# Generate Windows installer
## Prerequisites
Earthly release prep step must be executed and the output `dist` folder should be present in the root directory of the repository. (Probably needs to be done on separate machine running linux or downloaded from the CI)
```
earthly +release-prep
```
## Building the installers
In the root directory of the repository, run the PowerShell script to generate the installers:
```
./packaging\windows\generate_windows_installers.ps1
```
This will output both .exe (NSIS) and .msi (WIX) installers inside the dist folder:
```
...\Portmaster\dist\windows_amd64\Portmaster_0.1.0_x64-setup.exe
...\Portmaster\dist\windows_amd64\Portmaster_0.1.0_x64_en-US.msi
```
## Manual build
### Prerequisites
Ensure you have Rust and Cargo installed.
Install Tauri CLI by running:
```
cargo install tauri-cli --version "^2.0.0" --locked
```
### Folder structure
Create binary and intel folder inside the tauri project folder and place all the necessary files inside.
The folder structure should look like this:
```
...\Portmaster\desktop\tauri\src-tauri\binary
assets.zip
index.json
portmaster-core.dll
portmaster-core.exe
portmaster-kext.dll
portmaster-kext.sys
portmaster.zip
WebView2Loader.dll
...\Portmaster\desktop\tauri\src-tauri\intel
base.dsdl
geoipv4.mmdb
geoipv6.mmdb
index.dsd
index.json
intermediate.dsdl
main-intel.yaml
news.yaml
notifications.yaml
urgent.dsdl
```
### Building the Installer
Navigate to the `src-tauri` directory:
```
cd desktop/tauri/src-tauri
```
Run the following commands to build the installers:
For both NSIS and WIX installers:
```
cargo tauri bundle
```
For NSIS installer only:
```
cargo tauri bundle --bundles nsis
```
For WIX installer only:
```
cargo tauri bundle --bundles wix
```
The produced files will be in:
```
target\release\bundle\msi\
target\release\bundle\nsis\
```
## Debug MSI Installer
To see error messages during the build of the installer, run the bundler with the verbose flag:
```
cargo tauri bundle --bundles msi --verbose
```
To examine the logs during installation, run the installer with the following command:
```
msiexec /i "target\release\bundle\msi\Portmaster_0.1.0_x64_en-US.msi" /lv install.log
```