Files
EveryPublish/client/ui/Packaging/build-installer.ps1
T

48 lines
1.8 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.
# EveryPublish 客户端打包脚本(Windows 上执行)
# 产出 dist/EveryPublish-Client-<版本>-win-x64.zip:WinUI 壳 + agent-core.exe 同目录。
param(
[string]$Version = "0.2.0"
)
$ErrorActionPreference = "Stop"
$root = Split-Path -Parent $PSScriptRoot # client/ui
$dist = Join-Path $root "..\dist"
New-Item -ItemType Directory -Force -Path $dist | Out-Null
Write-Host "[1/5] 生成图标 app.ico ..."
Add-Type -AssemblyName System.Drawing
$assets = Join-Path $root "Assets"
New-Item -ItemType Directory -Force -Path $assets | Out-Null
$bmp = New-Object System.Drawing.Bitmap 32, 32
$g = [System.Drawing.Graphics]::FromImage($bmp)
$g.Clear([System.Drawing.Color]::FromArgb(0, 110, 255))
$font = New-Object System.Drawing.Font("Arial", 16, [System.Drawing.FontStyle]::Bold)
$g.DrawString("E", $font, [System.Drawing.Brushes]::White, 7, 5)
$g.Dispose()
$icon = [System.Drawing.Icon]::FromHandle($bmp.GetHicon())
$fs = [System.IO.File]::Create((Join-Path $assets "app.ico"))
$icon.Save($fs)
$fs.Close()
Write-Host "[2/5] 交叉编译 agent-core.exe (Go) ..."
Push-Location (Join-Path $root "..\core")
$env:GOOS = "windows"
$env:GOARCH = "amd64"
go build -o (Join-Path $dist "agent-core.exe") .
Pop-Location
Write-Host "[3/5] dotnet publish WinUI 壳 ..."
$publishDir = Join-Path $dist "publish"
Push-Location $root
dotnet publish EveryPublish.Client.csproj -c Release -r win-x64 -p:Platform=x64 -o $publishDir
Pop-Location
Write-Host "[4/5] 组装产物 ..."
Copy-Item (Join-Path $dist "agent-core.exe") $publishDir -Force
Copy-Item -Recurse -Force $assets (Join-Path $publishDir "Assets")
Write-Host "[5/5] 压缩 ..."
$zip = Join-Path $dist "EveryPublish-Client-$Version-win-x64.zip"
if (Test-Path $zip) { Remove-Item $zip -Force }
Compress-Archive -Path (Join-Path $publishDir "*") -DestinationPath $zip -Force
Write-Host "OK: $zip" -ForegroundColor Green