elfisa-pharmacy/scripts/build-installer.ps1

49 lines
2.0 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.

#Requires -Version 5.1
param([switch]$SkipBuild)
$ErrorActionPreference = "Stop"
$root = Resolve-Path (Join-Path $PSScriptRoot "..")
Set-Location $root
Write-Host "Root: $root" -ForegroundColor Cyan
$iscc = @(
"$env:LocalAppData\Programs\Inno Setup 6\ISCC.exe",
"${env:ProgramFiles(x86)}\Inno Setup 6\ISCC.exe",
"${env:ProgramFiles}\Inno Setup 6\ISCC.exe"
) | Where-Object { Test-Path $_ } | Select-Object -First 1
if (-not $iscc) {
throw "Inno Setup 6 (ISCC.exe) не найден. Установите: winget install JRSoftware.InnoSetup"
}
if (-not $SkipBuild) {
Write-Host "Сборка Release..." -ForegroundColor Cyan
dotnet build "src\ElectronicPharmacy\ElectronicPharmacy.csproj" -c Release
if ($LASTEXITCODE -ne 0) { throw "Сборка приложения завершилась с ошибкой" }
}
Write-Host "Сборка установщика..." -ForegroundColor Cyan
& $iscc "installer\ElfisaPharmacy.iss"
if ($LASTEXITCODE -ne 0) { throw "Inno Setup завершился с ошибкой" }
$out = Get-ChildItem "installer\output\ElfisaPharmacy-Setup-*.exe" |
Where-Object { $_.Name -notmatch '\.bak\.' -and $_.Name -ne 'ElfisaPharmacy-Setup.exe' } |
Sort-Object LastWriteTime -Descending |
Select-Object -First 1
if (-not $out) {
throw "Не найден собранный Setup exe в installer\output"
}
# Стабильное имя для CDN: https://cdn.24pharmdata.ru/ElfisaPharmacy-Setup.exe
$stable = Join-Path $out.DirectoryName "ElfisaPharmacy-Setup.exe"
Copy-Item $out.FullName $stable -Force
Write-Host ""
Write-Host "Готово: $($out.FullName)" -ForegroundColor Green
Write-Host "CDN-файл: $stable" -ForegroundColor Green
Write-Host ("Размер: {0:N1} МБ" -f ($out.Length / 1MB))
Write-Host ""
Write-Host "Залейте на CDN:" -ForegroundColor Cyan
Write-Host " https://cdn.24pharmdata.ru/ <- корень отдаёт этот Setup"
Write-Host " или файл: ElfisaPharmacy-Setup.exe"