Files
wpywmail/installer/build-installer.ps1

25 lines
1.4 KiB
PowerShell

$ErrorActionPreference = 'Stop'
$root = Split-Path -Parent $PSScriptRoot
$native = Join-Path $root 'server-native'
$stage = Join-Path $root ("work\installer-stage-" + (Get-Date -Format 'yyyyMMddHHmmss'))
$payload = Join-Path $stage 'payload'
$publish = Join-Path $stage 'publish'
$outputDir = Join-Path $root 'outputs'
$bootstrap = Join-Path $root 'installer-bootstrap'
$payloadZip = Join-Path $bootstrap 'Payload.zip'
$installerPublish = Join-Path $stage 'installer-publish'
$target = Join-Path $outputDir 'wpyw-mail-server-installer.exe'
New-Item -ItemType Directory -Force -Path $payload, $outputDir | Out-Null
dotnet publish (Join-Path $native 'WpywMail.Native.csproj') -c Release -r win-x64 --self-contained true -o $publish
Copy-Item -Path (Join-Path $publish '*') -Destination $payload -Recurse -Force
Copy-Item -LiteralPath (Join-Path $PSScriptRoot 'install.cmd') -Destination $payload -Force
Copy-Item -LiteralPath (Join-Path $PSScriptRoot 'install.ps1') -Destination $payload -Force
Compress-Archive -Path (Join-Path $payload '*') -DestinationPath $payloadZip -CompressionLevel Optimal -Force
dotnet publish (Join-Path $bootstrap 'Installer.csproj') -c Release -r win-x64 --self-contained true -o $installerPublish
Copy-Item -LiteralPath (Join-Path $installerPublish 'wpyw-mail-server-installer.exe') -Destination $target -Force
Write-Host "安装包已生成:$target"