param([string]$BuildFolder = 'Release') if ($PSVersionTable.PSEdition -ne 'Desktop') { # DCT_test is a .NET Framework/WPF binary. PowerShell 7 cannot reference # its mscorlib-based types from Add-Type, so transparently re-run this # verifier in the inbox Windows PowerShell 5.1 host. $legacyPowerShell = Join-Path $env:SystemRoot 'System32\WindowsPowerShell\v1.0\powershell.exe' if (-not (Test-Path -LiteralPath $legacyPowerShell)) { throw 'Windows PowerShell 5.1 is required to run Verify-Transport.ps1.' } & $legacyPowerShell -NoProfile -ExecutionPolicy Bypass -File $PSCommandPath -BuildFolder $BuildFolder exit $LASTEXITCODE } $ErrorActionPreference = 'Stop' Add-Type -AssemblyName PresentationFramework $transportAssembly = [IO.Path]::GetFullPath((Join-Path $PSScriptRoot "DCT_test/bin/$BuildFolder/DCT_test.exe")) $transportLoaded = [Reflection.Assembly]::LoadFrom($transportAssembly) # Add-Type resolves a full file path as an assembly *name* on Windows # PowerShell and reports 0x80131047 for this legacy .NET Framework EXE. # Reuse the already loaded assembly identity instead, along with the two # framework references used by the helper source. Add-Type -Path (Join-Path $PSScriptRoot 'Verify-Transport.cs') ` -ReferencedAssemblies @($transportLoaded.FullName, 'System.dll', 'System.Core.dll') [DCT_test.TransportRegression]::Run()