52 lines
1.9 KiB
PowerShell
52 lines
1.9 KiB
PowerShell
param(
|
|
[ValidateSet('Debug', 'Release')]
|
|
[string]$Configuration = 'Release',
|
|
[switch]$SkipRestore
|
|
)
|
|
|
|
$ErrorActionPreference = 'Stop'
|
|
$projectRoot = Split-Path -Parent $PSScriptRoot
|
|
$dotnetExe = Join-Path $projectRoot '.tools\dotnet\dotnet.exe'
|
|
$nugetConfig = Join-Path $projectRoot 'NuGet.Config'
|
|
$outputRoot = Join-Path $projectRoot 'artifacts\WindowsToolbox'
|
|
|
|
if (-not (Test-Path -LiteralPath $dotnetExe)) {
|
|
throw 'Local .NET SDK was not found under .tools\dotnet.'
|
|
}
|
|
|
|
$env:DOTNET_CLI_HOME = Join-Path $projectRoot '.tools\dotnet-home'
|
|
$env:NUGET_PACKAGES = Join-Path $projectRoot '.tools\nuget'
|
|
$env:DOTNET_SKIP_FIRST_TIME_EXPERIENCE = '1'
|
|
$env:DOTNET_CLI_TELEMETRY_OPTOUT = '1'
|
|
|
|
New-Item -ItemType Directory -Force -Path $outputRoot | Out-Null
|
|
|
|
if (-not $SkipRestore) {
|
|
& $dotnetExe restore (Join-Path $projectRoot 'WindowsToolbox.sln') --configfile $nugetConfig
|
|
if ($LASTEXITCODE -ne 0) { throw 'Restore failed.' }
|
|
}
|
|
|
|
$commonArguments = @(
|
|
'--configuration', $Configuration,
|
|
'--framework', 'net8.0-windows',
|
|
'--self-contained', 'false',
|
|
'--no-restore',
|
|
'--output', $outputRoot,
|
|
'-p:DebugType=None',
|
|
'-p:DebugSymbols=false'
|
|
)
|
|
|
|
& $dotnetExe publish (Join-Path $projectRoot 'src\WindowsToolbox.ElevatedHost\WindowsToolbox.ElevatedHost.csproj') @commonArguments
|
|
if ($LASTEXITCODE -ne 0) { throw 'Elevated host publish failed.' }
|
|
|
|
& $dotnetExe publish (Join-Path $projectRoot 'src\WindowsToolbox.Cli\WindowsToolbox.Cli.csproj') @commonArguments
|
|
if ($LASTEXITCODE -ne 0) { throw 'CLI publish failed.' }
|
|
|
|
& $dotnetExe publish (Join-Path $projectRoot 'src\WindowsToolbox.App\WindowsToolbox.App.csproj') @commonArguments
|
|
if ($LASTEXITCODE -ne 0) { throw 'WPF app publish failed.' }
|
|
|
|
Copy-Item -LiteralPath (Join-Path $projectRoot 'README.md') -Destination (Join-Path $outputRoot 'README.md') -Force
|
|
|
|
Write-Host "Published to: $outputRoot" -ForegroundColor Green
|
|
Write-Host 'Run WindowsToolbox.App.exe to start.' -ForegroundColor Green
|