Files
serverinfotest/host/build_exe.ps1
DESKTOP-PUHFO60\dsx2016 f83df3fd39 Ship Windows plug-and-play host exe with USB wait and autostart.
Users no longer need Python: run.bat or install_autostart.ps1; agent reconnects when CYD is plugged in.
2026-10-27 20:23:57 +08:00

35 lines
1.2 KiB
PowerShell

# Build a standalone Windows exe (no Python install needed on target PCs).
# Output: host\dist\send_sysinfo.exe
$ErrorActionPreference = "Stop"
$here = Split-Path -Parent $MyInvocation.MyCommand.Path
Set-Location $here
$pyCandidates = @(
"python",
(Join-Path $env:USERPROFILE "AppData\Local\Programs\Python\Python312\python.exe"),
(Join-Path $env:USERPROFILE "AppData\Local\Programs\Python\Python311\python.exe")
)
$py = $null
foreach ($c in $pyCandidates) {
$cmd = Get-Command $c -ErrorAction SilentlyContinue
if ($cmd) { $py = $cmd.Source; break }
if (Test-Path $c) { $py = $c; break }
}
if (-not $py) { throw "Python required only on the build machine." }
& $py -m pip install -q pyinstaller psutil pyserial nvidia-ml-py
& $py -m PyInstaller --noconfirm --clean --onefile --console `
--name send_sysinfo `
--hidden-import serial.tools.list_ports `
--hidden-import psutil `
--collect-all nvidia_ml_py `
.\send_sysinfo.py
if (-not (Test-Path ".\dist\send_sysinfo.exe")) {
throw "Build failed: dist\send_sysinfo.exe missing"
}
Copy-Item ".\dist\send_sysinfo.exe" ".\send_sysinfo.exe" -Force
Write-Host "OK -> $here\send_sysinfo.exe"
Write-Host "Also -> $here\dist\send_sysinfo.exe"