The Launcher's XP11 port (8730b9b) now extends to everything: one net40
flavor across Console, vPOD, Contract, and SecureConfig (Newtonsoft.Json
everywhere; the net48/System.Text.Json legs and their #if splits are gone
since nothing consumed them).
Console (net40, single TFM like the Launcher):
- The ~31 BinaryFormatter bitmap blobs in the .resx files became raw
embedded files under assets/icons/ (extracted byte-faithfully via a
serialization surrogate — the animated square_throbber.gif survives),
loaded by Properties.Resources.EmbeddedBitmap/EmbeddedIcon. Reason:
System.Resources.Extensions' DeserializingResourceReader is net461+
and cannot load on net40. Strings stay in the .resx.
- IReadOnlyList -> IList in AppRegistry (net45+ interface).
vPOD (net40, single TFM):
- Zip extraction now shares the Launcher's MiniZip.cs (linked source), so
the diff-test install round-trip exercises it against ZipArchive zips.
- RPC args as JTokens; LaunchApps.json persistence via Newtonsoft;
Thread.VolatileRead instead of Volatile.Read.
Contract/SecureConfig: net40-only; Client/** (PodManagerConnection) now
ships in the one build. The Launcher package gains
TeslaSecureConfiguration.dll as a dependency of the client half.
Tests: the net48 xunit host loads the net40 assemblies (both CLR4), so
the suite exercises exactly what ships — 106/106 green. Also verified
live: net40 console provisioned, managed, and ran a full RP mission
against net40 vPOD (beacon/passphrase/RSA, 53290 RPC, egg load,
Run/Stop Mission).
Version: 4.11.4.3 across Launcher, Console, and vPOD (vPOD joins the
suite version line; was 1.0.0). Ship the dotNetFx40 redistributable in
Launcher/assets for XP-era pods.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
68 lines
2.3 KiB
Batchfile
68 lines
2.3 KiB
Batchfile
@echo off
|
|
:: =============================================================================
|
|
:: TeslaConsole - Build ^& Package
|
|
:: =============================================================================
|
|
:: Publishes the console (net40, framework-dependent - XP11: runs on XP SP3
|
|
:: through Windows 11) into TeslaConsole\App and assembles the installable
|
|
:: package (App\ + install.bat) next to it. The 4.x runtime is in-box on
|
|
:: Windows 10/11; an XP-era control PC needs dotNetFx40_Full_x86_x64.exe once.
|
|
::
|
|
:: Requirements: .NET SDK (6.0+) to drive the build; internet for first restore.
|
|
::
|
|
:: Output:
|
|
:: TeslaConsole\
|
|
:: install.bat
|
|
:: App\ (TeslaConsole.exe + dependencies + RedPlanet\ content)
|
|
:: =============================================================================
|
|
|
|
setlocal
|
|
|
|
set ROOT=%~dp0
|
|
:: Package under dist\ so it never collides with the TeslaConsole\ SOURCE folder.
|
|
set BUILD_DIR=%ROOT%dist\TeslaConsole
|
|
set APP_OUT=%BUILD_DIR%\App
|
|
set ZIP=%ROOT%dist\TeslaConsole-pkg.zip
|
|
|
|
echo.
|
|
echo ============================================================
|
|
echo TeslaConsole - Build ^& Package (net40, framework-dependent)
|
|
echo Output : %BUILD_DIR%
|
|
echo ============================================================
|
|
echo.
|
|
|
|
where dotnet >nul 2>&1
|
|
if errorlevel 1 (
|
|
echo ERROR: dotnet not found. Install the .NET SDK from https://dotnet.microsoft.com/download
|
|
pause & exit /b 1
|
|
)
|
|
|
|
:: Don't publish over a running instance.
|
|
taskkill /F /IM TeslaConsole.exe >nul 2>&1
|
|
|
|
echo Publishing TeslaConsole...
|
|
if exist "%APP_OUT%" rmdir /s /q "%APP_OUT%"
|
|
dotnet publish "%ROOT%TeslaConsole.csproj" -c Release -o "%APP_OUT%"
|
|
if errorlevel 1 (
|
|
echo.
|
|
echo ERROR: Build failed.
|
|
pause & exit /b 1
|
|
)
|
|
|
|
if exist "%ROOT%install.bat" copy /y "%ROOT%install.bat" "%BUILD_DIR%\" >nul
|
|
|
|
echo Zipping package...
|
|
if exist "%ZIP%" del /q "%ZIP%"
|
|
powershell -NoProfile -Command "Compress-Archive -Path '%BUILD_DIR%' -DestinationPath '%ZIP%' -Force"
|
|
|
|
echo.
|
|
echo ============================================================
|
|
echo Package built: %BUILD_DIR%
|
|
echo Zip : %ZIP%
|
|
echo ============================================================
|
|
echo.
|
|
echo Next steps:
|
|
echo 1. Copy TeslaConsole-pkg.zip to the control PC and extract it
|
|
echo 2. Run TeslaConsole\install.bat as Administrator
|
|
echo.
|
|
pause
|