25 lines
1.4 KiB
PowerShell
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"
|