Files
SpdUp/build-installer.ps1
T
Phil-icyou 19ba425e79 Initial commit: SpdUp Windows Gaming Booster v1.0.0
- .NET 8 WPF app with full MVVM architecture
- One-click boost: CPU, RAM, GPU, network, services, timer resolution
- Real-time system monitor (LibreHardwareMonitor)
- Auto game detection (30+ games)
- RAM optimizer with kernel-level cleanup
- Network optimizer (TCP registry tweaks)
- Service manager, process manager, shader cache cleaner
- Desktop widget overlay
- Debug log viewer
- Custom dark gaming theme with trans pride colors
- 84 unit tests (xUnit)
- Inno Setup installer script
- Landing page website
2026-03-08 17:34:45 +01:00

87 lines
3.2 KiB
PowerShell
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<#
.SYNOPSIS
Build & package SpdUp Gaming Booster
.DESCRIPTION
1. Publishes the app as self-contained (win-x64)
2. Optionally compiles the Inno Setup installer into a single .exe
.EXAMPLE
.\build-installer.ps1 # Publish only
.\build-installer.ps1 -Installer # Publish + compile installer
#>
param(
[switch]$Installer,
[string]$Configuration = "Release"
)
$ErrorActionPreference = "Stop"
$root = $PSScriptRoot
$proj = Join-Path $root "SpdUp.csproj"
$pubDir = Join-Path $root "publish\SpdUp"
$issFile = Join-Path $root "Installer\SpdUpSetup.iss"
# ── Step 1: Clean previous publish ────────────────────────
Write-Host "`n=== Cleaning previous publish ===" -ForegroundColor Cyan
if (Test-Path $pubDir) {
Remove-Item $pubDir -Recurse -Force
}
# ── Step 2: Publish self-contained ────────────────────────
Write-Host "`n=== Publishing SpdUp (self-contained, win-x64, $Configuration) ===" -ForegroundColor Cyan
dotnet publish $proj `
-c $Configuration `
-r win-x64 `
--self-contained true `
-o $pubDir
if ($LASTEXITCODE -ne 0) {
Write-Error "dotnet publish failed with exit code $LASTEXITCODE"
exit 1
}
$files = Get-ChildItem $pubDir -Recurse -File
$totalMB = [math]::Round(($files | Measure-Object -Property Length -Sum).Sum / 1MB, 1)
Write-Host "`nPublished $($files.Count) files ($totalMB MB) to: $pubDir" -ForegroundColor Green
# ── Step 3 (optional): Compile Inno Setup installer ──────
if ($Installer) {
Write-Host "`n=== Compiling Inno Setup installer ===" -ForegroundColor Cyan
# Try to find ISCC.exe (Inno Setup Compiler)
$isccPaths = @(
"${env:ProgramFiles(x86)}\Inno Setup 6\ISCC.exe",
"${env:ProgramFiles}\Inno Setup 6\ISCC.exe",
"${env:ProgramFiles(x86)}\Inno Setup 5\ISCC.exe"
)
$iscc = $isccPaths | Where-Object { Test-Path $_ } | Select-Object -First 1
if (-not $iscc) {
Write-Host ""
Write-Warning "Inno Setup not found! Install it from: https://jrsoftware.org/isdl.php"
Write-Host "After installing, run this script again with -Installer" -ForegroundColor Yellow
Write-Host "`nAlternatively, open '$issFile' directly in Inno Setup and click Compile." -ForegroundColor Yellow
exit 1
}
Write-Host "Using: $iscc"
& $iscc $issFile
if ($LASTEXITCODE -ne 0) {
Write-Error "Inno Setup compilation failed with exit code $LASTEXITCODE"
exit 1
}
$setupExe = Get-ChildItem (Join-Path $root "publish") -Filter "SpdUp_Setup_*.exe" | Select-Object -First 1
if ($setupExe) {
$sizeMB = [math]::Round($setupExe.Length / 1MB, 1)
Write-Host "`nInstaller created: $($setupExe.FullName) ($sizeMB MB)" -ForegroundColor Green
}
}
else {
Write-Host "`n=== Skipping installer (use -Installer to compile setup.exe) ===" -ForegroundColor Yellow
Write-Host "To create the installer, either:"
Write-Host " 1. Run: .\build-installer.ps1 -Installer"
Write-Host " 2. Install Inno Setup 6, open '$issFile', click Compile"
}
Write-Host "`nDone!" -ForegroundColor Green