build.ps1 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. param([string]$rid = 'all')
  2. $ErrorActionPreference = 'Stop'
  3. Write-Host 'dotnet SDK info'
  4. dotnet --info
  5. $proj = 'NatTypeTester'
  6. $exe = "$proj.exe"
  7. $net_tfm = 'net6.0-windows'
  8. $configuration = 'Release'
  9. $output_dir = "$PSScriptRoot\$proj\bin\$configuration"
  10. $proj_path = "$PSScriptRoot\$proj\$proj.csproj"
  11. function Build-Generic
  12. {
  13. Write-Host 'Building generic'
  14. $outdir = "$output_dir\$net_tfm\generic"
  15. $publishDir = "$outdir\publish"
  16. Remove-Item $publishDir -Recurse -Force -Confirm:$false -ErrorAction Ignore
  17. dotnet publish -c $configuration -f $net_tfm $proj_path -o $publishDir
  18. if ($LASTEXITCODE) { exit $LASTEXITCODE }
  19. & "$PSScriptRoot\Build\DotNetDllPathPatcher.ps1" "$publishDir\$exe" bin
  20. if ($LASTEXITCODE) { exit $LASTEXITCODE }
  21. }
  22. function Build-SelfContained
  23. {
  24. param([string]$rid)
  25. Write-Host "Building $rid"
  26. $outdir = "$output_dir\$net_tfm\$rid"
  27. $publishDir = "$outdir\publish"
  28. Remove-Item $publishDir -Recurse -Force -Confirm:$false -ErrorAction Ignore
  29. dotnet publish -c $configuration -f $net_tfm -r $rid --self-contained true $proj_path
  30. if ($LASTEXITCODE) { exit $LASTEXITCODE }
  31. & "$PSScriptRoot\Build\DotNetDllPathPatcher.ps1" "$publishDir\$exe" bin
  32. if ($LASTEXITCODE) { exit $LASTEXITCODE }
  33. }
  34. if($rid -eq 'all' -or $rid -eq 'generic')
  35. {
  36. Build-Generic
  37. }
  38. if($rid -eq 'all')
  39. {
  40. Build-SelfContained win-x86
  41. Build-SelfContained win-x64
  42. Build-SelfContained win-arm64
  43. }
  44. elseif($rid -ne 'generic')
  45. {
  46. Build-SelfContained $rid
  47. }