param( [string]$RuntimeIdentifier = "win-x64", [string]$Output = "" ) $ErrorActionPreference = "Stop" $repoRoot = (Resolve-Path "$PSScriptRoot/../..").Path if ([string]::IsNullOrWhiteSpace($Output)) { $Output = "$repoRoot/dotnet/artifacts/client/$RuntimeIdentifier" } dotnet publish "$PSScriptRoot/VoiceCat.App/VoiceCat.App.csproj" -c Release -r $RuntimeIdentifier --self-contained true ` -p:PublishSingleFile=true -p:PublishTrimmed=false -p:IncludeNativeLibrariesForSelfExtract=false ` -p:RestorePackagesWithLockFile=true -p:RestoreLockedMode=true ` "-p:NuGetLockFilePath=packages.publish.$RuntimeIdentifier.lock.json" -o $Output if ($LASTEXITCODE -ne 0) { throw "Managed Windows client publish failed." } if (-not (Test-Path "$Output/voicecat_media.dll")) { throw "Managed media shim was not published." } if (Test-Path "$Output/voicecat.dll") { throw "Legacy VoiceCat native core must not be published." } Write-Host "Published managed Windows client to $Output"