param ( [Parameter()] [ValidateSet('Debug', 'Release')] [string] $Configuration = 'Release', [Parameter()] [ValidateNotNullOrEmpty()] [string] $OutputPath = 'release', [Parameter()] [bool] $SelfContained = $True, [Parameter()] [bool] $PublishReadyToRun = $False, [Parameter()] [bool] $PublishSingleFile = $True ) Push-Location (Split-Path $MyInvocation.MyCommand.Path -Parent) if ( Test-Path -Path $OutputPath ) { rm -Recurse -Force $OutputPath } New-Item -ItemType Directory -Name $OutputPath | Out-Null Push-Location $OutputPath New-Item -ItemType Directory -Name 'bin' | Out-Null New-Item -ItemType Directory -Name 'mode' | Out-Null New-Item -ItemType Directory -Name 'i18n' | Out-Null Pop-Location if ( -Not ( Test-Path '.\Other\release' ) ) { .\Other\build.ps1 if ( -Not $? ) { exit $lastExitCode } } cp -Force '.\Other\release\*.bin' "$OutputPath\bin" cp -Force '.\Other\release\*.dll' "$OutputPath\bin" cp -Force '.\Other\release\*.exe' "$OutputPath\bin" Write-Host Write-Host 'Building Netch' dotnet publish ` -c "$Configuration" ` -r 'win-x64' ` -p:Platform='x64' ` -p:SelfContained="$SelfContained" ` -p:PublishTrimmed="$SelfContained" ` -p:PublishReadyToRun="$PublishReadyToRun" ` -p:PublishSingleFile="$PublishSingleFile" ` -p:IncludeNativeLibrariesForSelfExtract="$SelfContained" ` -o "$OutputPath" ` '.\Netch\Netch.csproj' if ( -Not $? ) { exit $lastExitCode } if ( -Not ( Test-Path ".\Redirector\bin\$Configuration" ) ) { Write-Host Write-Host 'Building Redirector' msbuild ` -property:Configuration="$Configuration" ` -property:Platform=x64 ` '.\Redirector\Redirector.vcxproj' if ( -Not $? ) { exit $lastExitCode } } cp -Force ".\Redirector\bin\$Configuration\nfapi.dll" "$OutputPath\bin" cp -Force ".\Redirector\bin\$Configuration\Redirector.bin" "$OutputPath\bin" if ( -Not ( Test-Path ".\RouteHelper\bin\$Configuration" ) ) { Write-Host Write-Host 'Building RouteHelper' msbuild ` -property:Configuration="$Configuration" ` -property:Platform=x64 ` '.\RouteHelper\RouteHelper.vcxproj' if ( -Not $? ) { exit $lastExitCode } } cp -Force ".\RouteHelper\bin\$Configuration\RouteHelper.bin" "$OutputPath\bin" if ( $Configuration.Equals('Release') ) { rm -Force "$OutputPath\*.pdb" rm -Force "$OutputPath\*.xml" } Pop-Location exit 0