32 lines
1.2 KiB
PowerShell
32 lines
1.2 KiB
PowerShell
$ErrorActionPreference = 'Stop'
|
|
|
|
$projectDir = Split-Path -Parent $MyInvocation.MyCommand.Path
|
|
$ffmpeg = Join-Path $projectDir 'ThirdParty\ffmpeg.exe'
|
|
$ffprobe = Join-Path $projectDir 'ThirdParty\ffprobe.exe'
|
|
$releaseExe = Join-Path $projectDir 'bin\Release\net8.0-windows\win-x64\AmiReel.exe'
|
|
|
|
if (-not (Test-Path $ffmpeg) -or -not (Test-Path $ffprobe)) {
|
|
throw 'Add ffmpeg.exe and ffprobe.exe to ThirdParty before publishing.'
|
|
}
|
|
|
|
if (Test-Path $releaseExe) {
|
|
$runningReleaseInstances = Get-Process AmiReel -ErrorAction SilentlyContinue |
|
|
Where-Object { $_.Path -and [string]::Equals($_.Path, $releaseExe, [System.StringComparison]::OrdinalIgnoreCase) }
|
|
|
|
if ($runningReleaseInstances) {
|
|
Write-Host 'Stopping running release build before publish...' -ForegroundColor Yellow
|
|
$runningReleaseInstances | Stop-Process -Force
|
|
Start-Sleep -Milliseconds 500
|
|
}
|
|
}
|
|
|
|
dotnet publish (Join-Path $projectDir 'AmigaDB.VideoRenderer.csproj') `
|
|
-c Release `
|
|
-r win-x64 `
|
|
--self-contained true `
|
|
-p:PublishSingleFile=true `
|
|
-p:IncludeNativeLibrariesForSelfExtract=true `
|
|
-p:EnableCompressionInSingleFile=true
|
|
|
|
Write-Host 'Published to bin\Release\net8.0-windows\win-x64\publish' -ForegroundColor Green
|