diff --git a/setup.ps1 b/setup.ps1
index 595ff3e21cc57583d070e12a6cc278db9474568a..748739834ff10802085d68c3360a87978cf7e8a7 100644
--- a/setup.ps1
+++ b/setup.ps1
@@ -27,12 +27,12 @@ mkdir -Force build_cpp
 mkdir -Force $env:AIDGE_INSTALL_PATH
 Set-Location build_cpp
 cmake -DCMAKE_INSTALL_PREFIX:PATH=$env:AIDGE_INSTALL_PATH -DCMAKE_BUILD_TYPE=Debug ..
-if(!$?) { Set-Location $PSScriptRoot; Exit $LASTEXITCODE }
+if(!$?) { $lastError = $LASTEXITCODE; Set-Location $PSScriptRoot; Exit $lastError }
 cmake --build . -j2
-if(!$?) { Set-Location $PSScriptRoot; Exit $LASTEXITCODE }
+if(!$?) { $lastError = $LASTEXITCODE; Set-Location $PSScriptRoot; Exit $lastError }
 cmake --install . --config Debug
-if(!$?) { Set-Location $PSScriptRoot; Exit $LASTEXITCODE }
+if(!$?) { $lastError = $LASTEXITCODE; Set-Location $PSScriptRoot; Exit $lastError }
 # Optional: run the unit tests
 ctest --output-on-failure
-if(!$?) { Set-Location $PSScriptRoot; Exit $LASTEXITCODE }
+if(!$?) { $lastError = $LASTEXITCODE; Set-Location $PSScriptRoot; Exit $lastError }
 Set-Location $PSScriptRoot