@echo off REM Deploy Recordingtest.Sut.EgBim.PluginHost into the local EG-BIM Modeler REM Plugins folder. Build first, then copy the plugin + HmEG-aware + generic REM bridge DLLs side-by-side so MEF discovery picks them up as one plugin. REM REM Usage: double-click, or: scripts\deploy-egbim-plugin.bat setlocal enableextensions cd /d "%~dp0.." set "CSPROJ=src\Sut\EgBim\Recordingtest.Sut.EgBim.PluginHost\Recordingtest.Sut.EgBim.PluginHost.csproj" set "OUTDIR=src\Sut\EgBim\Recordingtest.Sut.EgBim.PluginHost\bin\Debug\net8.0-windows" set "DEST=EG-BIM Modeler\Plugins\Recordingtest.Sut.EgBim.PluginHost" echo ============================================================ echo [1/4] Safety check ??is EG-BIM Modeler running? echo ============================================================ tasklist /FI "IMAGENAME eq EG-BIM Modeler.exe" 2>nul | find /I "EG-BIM Modeler.exe" >nul if not errorlevel 1 ( echo. echo [WARN] EG-BIM Modeler is running. Close it before deploying echo to avoid locked plugin DLLs. echo. pause exit /b 1 ) echo ============================================================ echo [2/4] Build Recordingtest.Sut.EgBim.PluginHost (Debug) echo ============================================================ dotnet build "%CSPROJ%" -c Debug -nologo -v q if errorlevel 1 ( echo. echo [ERROR] Build failed. Aborting deploy. pause exit /b 1 ) echo ============================================================ echo [3/4] Purge legacy and fresh-copy plugin folder echo ============================================================ if exist "EG-BIM Modeler\Plugins\Recordingtest.EgPlugin" ( echo Removing legacy Recordingtest.EgPlugin folder... rmdir /s /q "EG-BIM Modeler\Plugins\Recordingtest.EgPlugin" ) if exist "%DEST%" ( echo Cleaning existing %DEST%... rmdir /s /q "%DEST%" ) mkdir "%DEST%" REM Copy plugin entry + HmEG-aware provider + generic contract. REM Intentionally *not* copying HmEG.dll / Editor*.dll ??those are already REM provided by the SUT at runtime. copy /y "%OUTDIR%\Recordingtest.Sut.EgBim.PluginHost.dll" "%DEST%\" >nul || goto :copy_fail copy /y "%OUTDIR%\Recordingtest.Hmeg.Bridge.dll" "%DEST%\" >nul || goto :copy_fail copy /y "%OUTDIR%\Recordingtest.Bridge.Abstractions.dll" "%DEST%\" >nul || goto :copy_fail REM Optional PDBs for in-SUT debugging (ignore if missing) copy /y "%OUTDIR%\Recordingtest.Sut.EgBim.PluginHost.pdb" "%DEST%\" >nul 2>&1 copy /y "%OUTDIR%\Recordingtest.Hmeg.Bridge.pdb" "%DEST%\" >nul 2>&1 copy /y "%OUTDIR%\Recordingtest.Bridge.Abstractions.pdb" "%DEST%\" >nul 2>&1 echo ============================================================ echo [4/4] Deployed files: echo ============================================================ dir /b "%DEST%" echo. echo OK ??Recordingtest.Sut.EgBim.PluginHost deployed. echo Next: launch EG-BIM Modeler, then in a shell: echo curl http://localhost:38080/health echo curl http://localhost:38080/scene echo curl http://localhost:38080/camera echo curl http://localhost:38080/selection echo. pause exit /b 0 :copy_fail echo. echo [ERROR] Copy failed. Check that the build output exists: echo %OUTDIR% pause exit /b 1