Refine WinUI shell and improve render diagnostics
This commit is contained in:
+53
-19
@@ -1,27 +1,65 @@
|
||||
[CmdletBinding()]
|
||||
param(
|
||||
[ValidateSet('WinUI', 'Wpf')]
|
||||
[string]$Target = 'WinUI'
|
||||
)
|
||||
|
||||
$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'
|
||||
$publishDir = Join-Path $projectDir 'bin\Release\net8.0-windows\win-x64\publish'
|
||||
$publishExe = Join-Path $publishDir 'AmiReel.exe'
|
||||
|
||||
if (-not (Test-Path $ffmpeg) -or -not (Test-Path $ffprobe)) {
|
||||
throw 'Add ffmpeg.exe and ffprobe.exe to ThirdParty before publishing.'
|
||||
}
|
||||
|
||||
switch ($Target) {
|
||||
'WinUI' {
|
||||
$projectPath = Join-Path $projectDir 'AmiReel.WinUI\AmiReel.WinUI.csproj'
|
||||
$releaseDir = Join-Path $projectDir 'AmiReel.WinUI\bin\Release\net10.0-windows10.0.26100.0\win-x64'
|
||||
$releaseExe = Join-Path $releaseDir 'AmiReel.exe'
|
||||
$publishDir = Join-Path $releaseDir 'publish'
|
||||
$publishExe = Join-Path $publishDir 'AmiReel.exe'
|
||||
$publishArguments = @(
|
||||
'publish', $projectPath,
|
||||
'-c', 'Release',
|
||||
'-r', 'win-x64',
|
||||
'--self-contained', 'true',
|
||||
'-p:WindowsPackageType=None',
|
||||
'-p:PublishSingleFile=true',
|
||||
'-p:IncludeNativeLibrariesForSelfExtract=true',
|
||||
'-p:EnableCompressionInSingleFile=true'
|
||||
)
|
||||
}
|
||||
'Wpf' {
|
||||
$projectPath = Join-Path $projectDir 'AmigaDB.VideoRenderer.csproj'
|
||||
$releaseDir = Join-Path $projectDir 'bin\Release\net8.0-windows\win-x64'
|
||||
$releaseExe = Join-Path $releaseDir 'AmiReel.exe'
|
||||
$publishDir = Join-Path $releaseDir 'publish'
|
||||
$publishExe = Join-Path $publishDir 'AmiReel.exe'
|
||||
$publishArguments = @(
|
||||
'publish', $projectPath,
|
||||
'-c', 'Release',
|
||||
'-r', 'win-x64',
|
||||
'--self-contained', 'true',
|
||||
'-p:PublishSingleFile=true',
|
||||
'-p:IncludeNativeLibrariesForSelfExtract=true',
|
||||
'-p:EnableCompressionInSingleFile=true'
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
if ((Test-Path $releaseExe) -or (Test-Path $publishExe)) {
|
||||
$runningReleaseInstances = Get-Process AmiReel -ErrorAction SilentlyContinue |
|
||||
Where-Object {
|
||||
$_.Path -and (
|
||||
[string]::Equals($_.Path, $releaseExe, [System.StringComparison]::OrdinalIgnoreCase) -or
|
||||
[string]::Equals($_.Path, $publishExe, [System.StringComparison]::OrdinalIgnoreCase)
|
||||
)
|
||||
}
|
||||
$runningReleaseInstances = Get-Process | Where-Object {
|
||||
$_.Path -and (
|
||||
[string]::Equals($_.Path, $releaseExe, [System.StringComparison]::OrdinalIgnoreCase) -or
|
||||
[string]::Equals($_.Path, $publishExe, [System.StringComparison]::OrdinalIgnoreCase)
|
||||
)
|
||||
}
|
||||
|
||||
if ($runningReleaseInstances) {
|
||||
Write-Host 'Stopping running AmiReel build before publish...' -ForegroundColor Yellow
|
||||
Write-Host "Stopping running $Target build before publish..." -ForegroundColor Yellow
|
||||
$runningReleaseInstances | Stop-Process -Force
|
||||
Start-Sleep -Milliseconds 800
|
||||
}
|
||||
@@ -31,12 +69,8 @@ if (Test-Path $publishDir) {
|
||||
Remove-Item -LiteralPath $publishDir -Recurse -Force -ErrorAction SilentlyContinue
|
||||
}
|
||||
|
||||
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
|
||||
& dotnet @publishArguments
|
||||
|
||||
Write-Host 'Published to bin\Release\net8.0-windows\win-x64\publish' -ForegroundColor Green
|
||||
Write-Host "Published $Target to $publishDir" -ForegroundColor Green
|
||||
Write-Host "Release folder: $publishDir" -ForegroundColor Cyan
|
||||
Write-Host "Executable: $publishExe" -ForegroundColor Cyan
|
||||
|
||||
Reference in New Issue
Block a user