[CmdletBinding()] param ( [Parameter(Mandatory = $true)] [string] $Runtime, [string] $OutputDir, [string] $Configuration = "Release", [string] $BuildPath = "src\Recyclarr.Cli", [switch] $NoSingleFile, [switch] $NoCompress, [switch] $ReadyToRun ) $ErrorActionPreference = "Stop" $extraArgs = @() if ($ReadyToRun) { $extraArgs += @( "-p:PublishReadyToRunShowWarnings=true" "-p:PublishReadyToRunComposite=true" "-p:TieredCompilation=false" ) } if (-not $NoSingleFile) { $extraArgs += @( "--self-contained=true" "-p:PublishSingleFile=true" ) } else { $extraArgs += @( "--self-contained=false" ) } if (-not $NoCompress) { $extraArgs += @( "-p:EnableCompressionInSingleFile=true" ) } if (-not $OutputDir) { $OutputDir = "publish\$Runtime" } "Extra Args: $extraArgs" dotnet publish $BuildPath ` --output $OutputDir ` --configuration $Configuration ` --runtime $Runtime ` @extraArgs if ($LASTEXITCODE -ne 0) { throw "dotnet publish failed" }