Files
isphere-ai-bridge/scripts/package-live-probe-recorder.ps1

139 lines
5.1 KiB
PowerShell
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
param(
[string]$OutputDir = "runs/live-probe-recorder-package",
[switch]$NoZip
)
$ErrorActionPreference = "Stop"
$repo = Resolve-Path -LiteralPath (Join-Path $PSScriptRoot "..")
$packageDir = Join-Path $repo $OutputDir
$buildRoot = Join-Path $repo "runs/live-probe-recorder-build"
$buildX86Dir = Join-Path $repo "runs/live-probe-recorder-build-x86"
$buildX64Dir = Join-Path $repo "runs/live-probe-recorder-build-x64"
$helperExe = Join-Path $buildX86Dir "ISphereWinHelper.exe"
$recorderExe = Join-Path $packageDir "ISphereLiveProbeRecorder.exe"
$variantsDir = Join-Path $packageDir "variants"
if (Test-Path -LiteralPath $packageDir) {
Remove-Item -LiteralPath $packageDir -Recurse -Force
}
if (Test-Path -LiteralPath "$packageDir.zip") {
Remove-Item -LiteralPath "$packageDir.zip" -Force
}
New-Item -ItemType Directory -Force -Path $packageDir | Out-Null
New-Item -ItemType Directory -Force -Path $variantsDir | Out-Null
& powershell -NoProfile -ExecutionPolicy Bypass -File (Join-Path $repo "scripts\build-win-helper.ps1") -OutputDir "runs/live-probe-recorder-build-x86" -Platform x86
if ($LASTEXITCODE -ne 0) {
throw "build-win-helper.ps1 x86 failed with exit code $LASTEXITCODE"
}
if (-not (Test-Path -LiteralPath $helperExe)) {
throw "built x86 helper not found: $helperExe"
}
Copy-Item -LiteralPath $helperExe -Destination $recorderExe -Force
Copy-Item -LiteralPath $helperExe -Destination (Join-Path $variantsDir "ISphereLiveProbeRecorder-x86.exe") -Force
& powershell -NoProfile -ExecutionPolicy Bypass -File (Join-Path $repo "scripts\build-win-helper.ps1") -OutputDir "runs/live-probe-recorder-build" -Platform anycpu
if ($LASTEXITCODE -ne 0) {
throw "build-win-helper.ps1 anycpu failed with exit code $LASTEXITCODE"
}
Copy-Item -LiteralPath (Join-Path $buildRoot "ISphereWinHelper.exe") -Destination (Join-Path $variantsDir "ISphereLiveProbeRecorder-anycpu.exe") -Force
& powershell -NoProfile -ExecutionPolicy Bypass -File (Join-Path $repo "scripts\build-win-helper.ps1") -OutputDir "runs/live-probe-recorder-build-x64" -Platform x64
if ($LASTEXITCODE -ne 0) {
throw "build-win-helper.ps1 x64 failed with exit code $LASTEXITCODE"
}
Copy-Item -LiteralPath (Join-Path $buildX64Dir "ISphereWinHelper.exe") -Destination (Join-Path $variantsDir "ISphereLiveProbeRecorder-x64.exe") -Force
@"
ISphereLiveProbeRecorder
- ISphereLiveProbeRecorder.exe x86
- variants anycpu/x86/x64
- BadImageFormatException exe hash variants\ISphereLiveProbeRecorder-x86.exe
使
1. iSphere/IMPlatformClient
2. iSphere/IMPlatformClient
3. //
4.
5. ISphereLiveProbeRecorder.exe
6. probe-output isphere-live-probe-
7.
-
-
-
- UIA
- //
- exe/dll SHA256
- /
-
-
-
- TCP
-
-
- /
-
- hook
-
"@ | Set-Content -LiteralPath (Join-Path $packageDir "README.txt") -Encoding UTF8
@"
@echo off
setlocal
cd /d "%~dp0"
ISphereLiveProbeRecorder.exe
pause
"@ | Set-Content -LiteralPath (Join-Path $packageDir "run-recorder.bat") -Encoding ASCII
@"
@echo off
setlocal
cd /d "%~dp0"
variants\ISphereLiveProbeRecorder-x86.exe
pause
"@ | Set-Content -LiteralPath (Join-Path $packageDir "run-x86-fallback.bat") -Encoding ASCII
@"
@echo off
setlocal
cd /d "%~dp0"
echo === Windows version ===
ver
echo.
echo === File sizes ===
dir ISphereLiveProbeRecorder.exe variants\ISphereLiveProbeRecorder-*.exe
echo.
echo === .NET Framework v4 runtime ===
reg query "HKLM\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full" /v Release
echo.
echo === Try top-level recorder ===
ISphereLiveProbeRecorder.exe --no-pause
echo exit code: %ERRORLEVEL%
pause
"@ | Set-Content -LiteralPath (Join-Path $packageDir "check-and-run.bat") -Encoding ASCII
$zipPath = "$packageDir.zip"
if (-not $NoZip) {
if (Test-Path -LiteralPath $zipPath) {
Remove-Item -LiteralPath $zipPath -Force
}
Compress-Archive -Path (Join-Path $packageDir "*") -DestinationPath $zipPath -Force
}
[ordered]@{
ok = $true
package_dir = (Resolve-Path -LiteralPath $packageDir).Path
recorder_exe = (Resolve-Path -LiteralPath $recorderExe).Path
recorder_platform = "x86"
zip = if (Test-Path -LiteralPath $zipPath) { (Resolve-Path -LiteralPath $zipPath).Path } else { $null }
} | ConvertTo-Json -Depth 4 -Compress