diff --git a/MP-TAB.sln b/MP-TAB.sln
deleted file mode 100644
index 339f020e..00000000
--- a/MP-TAB.sln
+++ /dev/null
@@ -1,37 +0,0 @@
-๏ปฟ
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio Version 17
-VisualStudioVersion = 17.0.32126.317
-MinimumVisualStudioVersion = 10.0.40219.1
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MP.Data", "MP.Data\MP.Data.csproj", "{10BA8450-301D-49C7-8E1E-21B7469C225C}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MP-TAB", "MP-TAB\MP-TAB\MP-TAB.csproj", "{9141D627-EE10-4BF6-9A2C-AAC6845E185F}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MP-TAB.Client", "MP-TAB\MP-TAB.Client\MP-TAB.Client.csproj", "{28559808-58F2-424B-B65C-062AA59839EC}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|Any CPU = Debug|Any CPU
- Release|Any CPU = Release|Any CPU
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {10BA8450-301D-49C7-8E1E-21B7469C225C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {10BA8450-301D-49C7-8E1E-21B7469C225C}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {10BA8450-301D-49C7-8E1E-21B7469C225C}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {10BA8450-301D-49C7-8E1E-21B7469C225C}.Release|Any CPU.Build.0 = Release|Any CPU
- {9141D627-EE10-4BF6-9A2C-AAC6845E185F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {9141D627-EE10-4BF6-9A2C-AAC6845E185F}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {9141D627-EE10-4BF6-9A2C-AAC6845E185F}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {9141D627-EE10-4BF6-9A2C-AAC6845E185F}.Release|Any CPU.Build.0 = Release|Any CPU
- {28559808-58F2-424B-B65C-062AA59839EC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {28559808-58F2-424B-B65C-062AA59839EC}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {28559808-58F2-424B-B65C-062AA59839EC}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {28559808-58F2-424B-B65C-062AA59839EC}.Release|Any CPU.Build.0 = Release|Any CPU
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
- GlobalSection(ExtensibilityGlobals) = postSolution
- SolutionGuid = {632D11D1-088B-4795-97E5-048534002558}
- EndGlobalSection
-EndGlobal
diff --git a/MP-TAB3/MP-TAB3.csproj b/MP-TAB3/MP-TAB3.csproj
index a078167b..d2018285 100644
--- a/MP-TAB3/MP-TAB3.csproj
+++ b/MP-TAB3/MP-TAB3.csproj
@@ -3,7 +3,7 @@
net8.0
enable
- 8.16.2604.2718
+ 8.16.2605.2808
enable
MP_TAB3
diff --git a/MP-TAB3/Resources/ChangeLog.html b/MP-TAB3/Resources/ChangeLog.html
index 133a7fea..1fc88236 100644
--- a/MP-TAB3/Resources/ChangeLog.html
+++ b/MP-TAB3/Resources/ChangeLog.html
@@ -1,6 +1,6 @@
Modulo MAPOSPEC
- Versione: 8.16.2604.2718
+ Versione: 8.16.2605.2808
Note di rilascio:
-
diff --git a/MP-TAB3/Resources/VersNum.txt b/MP-TAB3/Resources/VersNum.txt
index 87ec763e..828db479 100644
--- a/MP-TAB3/Resources/VersNum.txt
+++ b/MP-TAB3/Resources/VersNum.txt
@@ -1 +1 @@
-8.16.2604.2718
+8.16.2605.2808
diff --git a/MP-TAB3/Resources/manifest.xml b/MP-TAB3/Resources/manifest.xml
index 6613f4d9..58e7ba81 100644
--- a/MP-TAB3/Resources/manifest.xml
+++ b/MP-TAB3/Resources/manifest.xml
@@ -1,6 +1,6 @@
-
- 8.16.2604.2718
+ 8.16.2605.2808
https://nexus.steamware.net/repository/SWS/MP-TAB3/stable/LAST/MP-TAB3.zip
https://nexus.steamware.net/repository/SWS/MP-TAB3/stable/LAST/ChangeLog.html
false
diff --git a/MP-WAMON.sln b/MP-WAMON.sln
deleted file mode 100644
index d0829635..00000000
--- a/MP-WAMON.sln
+++ /dev/null
@@ -1,43 +0,0 @@
-๏ปฟ
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio Version 17
-VisualStudioVersion = 17.0.32126.317
-MinimumVisualStudioVersion = 10.0.40219.1
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MP.Data", "MP.Data\MP.Data.csproj", "{10BA8450-301D-49C7-8E1E-21B7469C225C}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MP.Mon", "MP.Mon\MP.Mon.csproj", "{7780FA7A-3597-4098-81C1-DC9AD6AE7A98}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MP.WASM.Mon.Server", "MP.WASM.Mon\Server\MP.WASM.Mon.Server.csproj", "{4A98B7F4-4EC6-4284-9D6C-63203DB981B1}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MP.WASM.Mon.Client", "MP.WASM.Mon\Client\MP.WASM.Mon.Client.csproj", "{9BF7BDE7-016A-458C-8791-494FD4204301}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|Any CPU = Debug|Any CPU
- Release|Any CPU = Release|Any CPU
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {10BA8450-301D-49C7-8E1E-21B7469C225C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {10BA8450-301D-49C7-8E1E-21B7469C225C}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {10BA8450-301D-49C7-8E1E-21B7469C225C}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {10BA8450-301D-49C7-8E1E-21B7469C225C}.Release|Any CPU.Build.0 = Release|Any CPU
- {7780FA7A-3597-4098-81C1-DC9AD6AE7A98}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {7780FA7A-3597-4098-81C1-DC9AD6AE7A98}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {7780FA7A-3597-4098-81C1-DC9AD6AE7A98}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {7780FA7A-3597-4098-81C1-DC9AD6AE7A98}.Release|Any CPU.Build.0 = Release|Any CPU
- {4A98B7F4-4EC6-4284-9D6C-63203DB981B1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {4A98B7F4-4EC6-4284-9D6C-63203DB981B1}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {4A98B7F4-4EC6-4284-9D6C-63203DB981B1}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {4A98B7F4-4EC6-4284-9D6C-63203DB981B1}.Release|Any CPU.Build.0 = Release|Any CPU
- {9BF7BDE7-016A-458C-8791-494FD4204301}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {9BF7BDE7-016A-458C-8791-494FD4204301}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {9BF7BDE7-016A-458C-8791-494FD4204301}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {9BF7BDE7-016A-458C-8791-494FD4204301}.Release|Any CPU.Build.0 = Release|Any CPU
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
- GlobalSection(ExtensibilityGlobals) = postSolution
- SolutionGuid = {632D11D1-088B-4795-97E5-048534002558}
- EndGlobalSection
-EndGlobal
diff --git a/MP.INVE/MP.INVE.csproj b/MP.INVE/MP.INVE.csproj
index 7019b116..2d758695 100644
--- a/MP.INVE/MP.INVE.csproj
+++ b/MP.INVE/MP.INVE.csproj
@@ -5,7 +5,7 @@
enable
enable
MP.INVE
- 8.16.2604.2716
+ 8.16.2605.2808
diff --git a/MP.INVE/Resources/ChangeLog.html b/MP.INVE/Resources/ChangeLog.html
index d27ae967..f21a80e9 100644
--- a/MP.INVE/Resources/ChangeLog.html
+++ b/MP.INVE/Resources/ChangeLog.html
@@ -1,6 +1,6 @@
Modulo MAPOINVE
-
Versione: 8.16.2604.2716
+ Versione: 8.16.2605.2808
Note di rilascio:
-
diff --git a/MP.INVE/Resources/VersNum.txt b/MP.INVE/Resources/VersNum.txt
index e7a88a55..828db479 100644
--- a/MP.INVE/Resources/VersNum.txt
+++ b/MP.INVE/Resources/VersNum.txt
@@ -1 +1 @@
-8.16.2604.2716
+8.16.2605.2808
diff --git a/MP.INVE/Resources/manifest.xml b/MP.INVE/Resources/manifest.xml
index e7edcec6..d1535baa 100644
--- a/MP.INVE/Resources/manifest.xml
+++ b/MP.INVE/Resources/manifest.xml
@@ -1,6 +1,6 @@
-
- 8.16.2604.2716
+ 8.16.2605.2808
https://nexus.steamware.net/repository/SWS/MP-INVE/stable/LAST/MP.INVE.zip
https://nexus.steamware.net/repository/SWS/MP-INVE/stable/LAST/ChangeLog.html
false
diff --git a/MP.IOC/MP.IOC.csproj b/MP.IOC/MP.IOC.csproj
index 5163209d..15eee620 100644
--- a/MP.IOC/MP.IOC.csproj
+++ b/MP.IOC/MP.IOC.csproj
@@ -4,7 +4,7 @@
net8.0
enable
enable
- 8.16.2605.2719
+ 8.16.2605.2808
diff --git a/MP.IOC/Resources/ChangeLog.html b/MP.IOC/Resources/ChangeLog.html
index 35c7cf13..8a235ada 100644
--- a/MP.IOC/Resources/ChangeLog.html
+++ b/MP.IOC/Resources/ChangeLog.html
@@ -1,6 +1,6 @@
Modulo MP-IOC
-
Versione: 8.16.2605.2719
+ Versione: 8.16.2605.2808
Note di rilascio:
-
diff --git a/MP.IOC/Resources/VersNum.txt b/MP.IOC/Resources/VersNum.txt
index a3677dd7..828db479 100644
--- a/MP.IOC/Resources/VersNum.txt
+++ b/MP.IOC/Resources/VersNum.txt
@@ -1 +1 @@
-8.16.2605.2719
+8.16.2605.2808
diff --git a/MP.IOC/Resources/manifest.xml b/MP.IOC/Resources/manifest.xml
index 7c9ea58b..b9aa95bf 100644
--- a/MP.IOC/Resources/manifest.xml
+++ b/MP.IOC/Resources/manifest.xml
@@ -1,6 +1,6 @@
-
- 8.16.2605.2719
+ 8.16.2605.2808
https://nexus.steamware.net/repository/SWS/MP-IOC/stable/LAST/MP.IOC.zip
https://nexus.steamware.net/repository/SWS/MP-IOC/stable/LAST/ChangeLog.html
false
diff --git a/MP.Land/MP.Land.csproj b/MP.Land/MP.Land.csproj
index 4f1a232f..dd8f7d78 100644
--- a/MP.Land/MP.Land.csproj
+++ b/MP.Land/MP.Land.csproj
@@ -3,7 +3,7 @@
net8.0
MP.Land
- 8.16.2605.0811
+ 8.16.2605.2808
Debug;Release;Debug_LiManDebug
en
True
diff --git a/MP.Land/Resources/ChangeLog.html b/MP.Land/Resources/ChangeLog.html
index 65e63b56..474c8f3d 100644
--- a/MP.Land/Resources/ChangeLog.html
+++ b/MP.Land/Resources/ChangeLog.html
@@ -1,6 +1,6 @@
Modulo Tablet MAPO - DotNet6
-
Versione: 8.16.2605.0811
+ Versione: 8.16.2605.2808
Note di rilascio:
diff --git a/MP.Land/Resources/VersNum.txt b/MP.Land/Resources/VersNum.txt
index 3249ffa8..828db479 100644
--- a/MP.Land/Resources/VersNum.txt
+++ b/MP.Land/Resources/VersNum.txt
@@ -1 +1 @@
-8.16.2605.0811
+8.16.2605.2808
diff --git a/MP.Land/Resources/manifest.xml b/MP.Land/Resources/manifest.xml
index e201bc34..fc2d24fe 100644
--- a/MP.Land/Resources/manifest.xml
+++ b/MP.Land/Resources/manifest.xml
@@ -1,6 +1,6 @@
-
- 8.16.2605.0811
+ 8.16.2605.2808
https://nexus.steamware.net/repository/SWS/MP-LAND/stable/LAST/MP.Land.zip
https://nexus.steamware.net/repository/SWS/MP-LAND/stable/LAST/ChangeLog.html
false
diff --git a/MP.MON/MP.MON.csproj b/MP.MON/MP.MON.csproj
index 83044cfe..34adfe61 100644
--- a/MP.MON/MP.MON.csproj
+++ b/MP.MON/MP.MON.csproj
@@ -6,7 +6,7 @@
enable
MP.MON
$(AssemblyName.Replace(' ', '_'))
- 8.16.2604.2718
+ 8.16.2605.2808
diff --git a/MP.MON/Resources/ChangeLog.html b/MP.MON/Resources/ChangeLog.html
index 133a7fea..1fc88236 100644
--- a/MP.MON/Resources/ChangeLog.html
+++ b/MP.MON/Resources/ChangeLog.html
@@ -1,6 +1,6 @@
Modulo MAPOSPEC
- Versione: 8.16.2604.2718
+ Versione: 8.16.2605.2808
Note di rilascio:
-
diff --git a/MP.MON/Resources/VersNum.txt b/MP.MON/Resources/VersNum.txt
index 87ec763e..828db479 100644
--- a/MP.MON/Resources/VersNum.txt
+++ b/MP.MON/Resources/VersNum.txt
@@ -1 +1 @@
-8.16.2604.2718
+8.16.2605.2808
diff --git a/MP.MON/Resources/manifest.xml b/MP.MON/Resources/manifest.xml
index 6546b902..5d52ff5f 100644
--- a/MP.MON/Resources/manifest.xml
+++ b/MP.MON/Resources/manifest.xml
@@ -1,6 +1,6 @@
-
- 8.16.2604.2718
+ 8.16.2605.2808
https://nexus.steamware.net/repository/SWS/MP-MON/stable/LAST/MP.MON.zip
https://nexus.steamware.net/repository/SWS/MP-MON/stable/LAST/ChangeLog.html
false
diff --git a/MP.Prog/MP.Prog.csproj b/MP.Prog/MP.Prog.csproj
index 7fe982a9..3601b540 100644
--- a/MP.Prog/MP.Prog.csproj
+++ b/MP.Prog/MP.Prog.csproj
@@ -3,7 +3,7 @@
net8.0
MP.Prog
- 6.16.2604.2715
+ 8.16.2605.2808
True
diff --git a/MP.Prog/Resources/ChangeLog.html b/MP.Prog/Resources/ChangeLog.html
index abc709a8..e99d3083 100644
--- a/MP.Prog/Resources/ChangeLog.html
+++ b/MP.Prog/Resources/ChangeLog.html
@@ -1,6 +1,6 @@
Modulo gestione Programmi MAPO
-
Versione: 6.16.2604.2715
+ Versione: 8.16.2605.2808
Note di rilascio:
diff --git a/MP.Prog/Resources/VersNum.txt b/MP.Prog/Resources/VersNum.txt
index b53e4a5d..828db479 100644
--- a/MP.Prog/Resources/VersNum.txt
+++ b/MP.Prog/Resources/VersNum.txt
@@ -1 +1 @@
-6.16.2604.2715
+8.16.2605.2808
diff --git a/MP.Prog/Resources/manifest.xml b/MP.Prog/Resources/manifest.xml
index 9906d5bb..70a2dbb7 100644
--- a/MP.Prog/Resources/manifest.xml
+++ b/MP.Prog/Resources/manifest.xml
@@ -1,6 +1,6 @@
-
- 6.16.2604.2715
+ 8.16.2605.2808
https://nexus.steamware.net/repository/SWS/MP-PROG/stable/LAST/MP.Prog.zip
https://nexus.steamware.net/repository/SWS/MP-PROG/stable/LAST/ChangeLog.html
false
diff --git a/MP.RIOC/MP.RIOC.csproj b/MP.RIOC/MP.RIOC.csproj
index a893eba8..fa7dd417 100644
--- a/MP.RIOC/MP.RIOC.csproj
+++ b/MP.RIOC/MP.RIOC.csproj
@@ -5,7 +5,7 @@
enable
enable
MP.RIOC
- 8.16.2605.2519
+ 8.16.2605.2808
diff --git a/MP.RIOC/Resources/ChangeLog.html b/MP.RIOC/Resources/ChangeLog.html
index 65c07daf..98241e80 100644
--- a/MP.RIOC/Resources/ChangeLog.html
+++ b/MP.RIOC/Resources/ChangeLog.html
@@ -1,6 +1,6 @@
Modulo MP-RIOC
-
Versione: 8.16.2605.2519
+ Versione: 8.16.2605.2808
Note di rilascio:
-
diff --git a/MP.RIOC/Resources/VersNum.txt b/MP.RIOC/Resources/VersNum.txt
index a68d1899..828db479 100644
--- a/MP.RIOC/Resources/VersNum.txt
+++ b/MP.RIOC/Resources/VersNum.txt
@@ -1 +1 @@
-8.16.2605.2519
+8.16.2605.2808
diff --git a/MP.RIOC/Resources/manifest.xml b/MP.RIOC/Resources/manifest.xml
index 69dca7d7..67258ee2 100644
--- a/MP.RIOC/Resources/manifest.xml
+++ b/MP.RIOC/Resources/manifest.xml
@@ -1,6 +1,6 @@
-
- 8.16.2605.2519
+ 8.16.2605.2808
https://nexus.steamware.net/repository/SWS/MP-RIOC/stable/LAST/MP.RIOC.zip
https://nexus.steamware.net/repository/SWS/MP-RIOC/stable/LAST/ChangeLog.html
false
diff --git a/MP.Stats/MP.Stats.csproj b/MP.Stats/MP.Stats.csproj
index 6b61fa36..d793d9c7 100644
--- a/MP.Stats/MP.Stats.csproj
+++ b/MP.Stats/MP.Stats.csproj
@@ -4,7 +4,7 @@
net8.0
MP.Stats
826e877c-ba70-4253-84cb-d0b1cafd4440
- 8.16.2605.2713
+ 8.16.2605.2808
true
en
diff --git a/MP.Stats/Resources/ChangeLog.html b/MP.Stats/Resources/ChangeLog.html
index 709dcffb..bf5b6ad9 100644
--- a/MP.Stats/Resources/ChangeLog.html
+++ b/MP.Stats/Resources/ChangeLog.html
@@ -1,6 +1,6 @@
Modulo statistiche MAPO
-
Versione: 8.16.2605.2713
+ Versione: 8.16.2605.2808
Note di rilascio:
diff --git a/MP.Stats/Resources/VersNum.txt b/MP.Stats/Resources/VersNum.txt
index 12119c44..828db479 100644
--- a/MP.Stats/Resources/VersNum.txt
+++ b/MP.Stats/Resources/VersNum.txt
@@ -1 +1 @@
-8.16.2605.2713
+8.16.2605.2808
diff --git a/MP.Stats/Resources/manifest.xml b/MP.Stats/Resources/manifest.xml
index 8e8abd19..6a52562d 100644
--- a/MP.Stats/Resources/manifest.xml
+++ b/MP.Stats/Resources/manifest.xml
@@ -1,6 +1,6 @@
-
- 8.16.2605.2713
+ 8.16.2605.2808
https://nexus.steamware.net/repository/SWS/MP-STATS/stable/LAST/MP.Stats.zip
https://nexus.steamware.net/repository/SWS/MP-STATS/stable/LAST/ChangeLog.html
false
diff --git a/build_all_par.ps1 b/build_all_par.ps1
new file mode 100644
index 00000000..687234a3
--- /dev/null
+++ b/build_all_par.ps1
@@ -0,0 +1,157 @@
+# --- CONFIGURAZIONE ---
+$pattern = "MP-*.sln"
+$sharedProjectPath = ".\MP.Data\MP.Data.csproj"
+
+# Controllo robusto del parametro --agent (cerca in tutti gli argomenti passati)
+$agentMode = $args -contains "--agent"
+
+# Avvia il cronometro per calcolare il tempo totale
+$stopwatch = [System.Diagnostics.Stopwatch]::StartNew()
+
+# 1. Trova l'MSBuild ufficiale di Visual Studio 2022
+$vsPaths = & "${env:ProgramFiles(x86)}\Microsoft Visual Studio\Installer\vswhere.exe" -version "[17.0,18.0)" -products * -requires Microsoft.Component.MSBuild -property installationPath
+if (-not $vsPaths) {
+ if ($agentMode) { exit 1 }
+ Write-Host "โ Impossibile trovare Visual Studio 2022!" -ForegroundColor Red
+ Exit
+}
+$msbuildPath = Join-Path $vsPaths[0] "MSBuild\Current\Bin\MSBuild.exe"
+
+if (-not $agentMode) {
+ Write-Host "๐ฏ Usando MSBuild di VS2022: $msbuildPath" -ForegroundColor Gray
+}
+
+# Cerca tutte le soluzioni escludendo cartelle di build
+$solutions = Get-ChildItem -Path . -Filter $pattern -Recurse | Where-Object {
+ $_.FullName -notmatch '\\(bin|obj|\\.git|\\.vs)\\.'
+}
+
+if ($solutions.Count -eq 0) {
+ if ($agentMode) { exit 1 }
+ Write-Host "โ ๏ธ Nessuna soluzione trovata che corrisponde al pattern: $pattern" -ForegroundColor Yellow
+ Exit
+}
+
+if (-not $agentMode) {
+ Write-Host "๐ Trovate $($solutions.Count) soluzioni univoche." -ForegroundColor Magenta
+}
+
+# FASE 1: Compilazione preventiva del progetto comune
+if (Test-Path $sharedProjectPath) {
+ if (-not $agentMode) { Write-Host "`n๐ฆ Fase 1: Compilazione del progetto comune condiviso..." -ForegroundColor Cyan }
+
+ # AGGIORNAMENTO: Se siamo in agentMode silenziamo completamente MSBuild (/v:q) e ridirigiamo l'output
+ if ($agentMode) {
+ & $msbuildPath $sharedProjectPath /p:Configuration=Release /v:q /nologo > $null 2>&1
+ }
+ else {
+ & $msbuildPath $sharedProjectPath /p:Configuration=Release /v:m /nologo
+ }
+
+ if ($LASTEXITCODE -ne 0) {
+ if (-not $agentMode) { Write-Host "โ Errore critico: Impossibile compilare il progetto comune. Interruzione." -ForegroundColor Red }
+ exit 1
+ }
+ if (-not $agentMode) { Write-Host "โ
Progetto comune pronto." -ForegroundColor Green }
+}
+
+# FASE 2: Compilazione parallela iniziale
+if (-not $agentMode) {
+ Write-Host "`n๐ ๏ธ Fase 2: Avvio compilazione parallela delle soluzioni (Max 4)..." -ForegroundColor Magenta
+ Write-Host "==================================================" -ForegroundColor Magenta
+}
+
+$parallelResults = $solutions | ForEach-Object -Parallel {
+ $solName = $_.Name
+ $solPath = $_.FullName
+ $msb = $using:msbuildPath
+
+ # Aggiunto /nologo per evitare intestazioni ripetute nei log interni
+ $log = & $msb $solPath /p:Configuration=Release /m:1 /p:BuildInParallel=false /v:m /nologo 2>&1
+
+ [PSCustomObject]@{
+ Name = $solName
+ FullName = $solPath
+ Success = ($LASTEXITCODE -eq 0)
+ Log = $log
+ }
+} -ThrottleLimit 3
+
+# --- ANALISI PRIMO ROUND E FASE 3 (RETRY SEQUENZIALE) ---
+$successSolutions = @()
+$failedToRetry = @()
+
+foreach ($res in $parallelResults) {
+ if ($res.Success) {
+ if (-not $agentMode) { Write-Host "โ
$($res.Name) compilata con successo (in parallelo)!" -ForegroundColor Green }
+ $successSolutions += $res.Name
+ }
+ else {
+ if (-not $agentMode) { Write-Host "โ ๏ธ $($res.Name) fallita in parallelo. Accodata per il recupero sequenziale..." -ForegroundColor Yellow }
+ $failedToRetry += $res
+ }
+}
+
+# Se ci sono falliti, li rieseguiamo UNO ALLA VOLTA pulendo la cache
+if ($failedToRetry.Count -gt 0) {
+ if (-not $agentMode) {
+ Write-Host "`n๐ Fase 3: Riesecuzione sequenziale dei task falliti ($($failedToRetry.Count) soluzioni)..." -ForegroundColor Magenta
+ Write-Host "==================================================" -ForegroundColor Magenta
+ }
+
+ foreach ($failedRes in $failedToRetry) {
+ if (-not $agentMode) { Write-Host "โณ Ripristino e compilazione sequenziale: $($failedRes.Name)..." -ForegroundColor Cyan }
+
+ & $msbuildPath $failedRes.FullName /t:Restore /v:q /nologo > $null 2>&1
+ & $msbuildPath $failedRes.FullName /t:Clean /v:q /p:Configuration=Release /nologo > $null 2>&1
+ $retryLog = & $msbuildPath $failedRes.FullName /t:Build /p:Configuration=Release /v:m /nologo 2>&1
+
+ if ($LASTEXITCODE -eq 0) {
+ if (-not $agentMode) { Write-Host "โ
FALSO ALLARME: $($failedRes.Name) compilata correttamente in sequenziale!" -ForegroundColor Green }
+ $successSolutions += $failedRes.Name
+ }
+ else {
+ if (-not $agentMode) { Write-Host "โ ERRORE REALE: $($failedRes.Name) รจ fallita anche in sequenziale." -ForegroundColor Red }
+ $failedRes.Log = $retryLog
+ }
+ }
+}
+
+# Ferma il cronometro e calcola il tempo trascorso
+$stopwatch.Stop()
+$elapsedTime = "{0:mm\:ss}" -f $stopwatch.Elapsed
+
+# --- ELABORAZIONE DEI RISULTATI FINALI ---
+$totalCount = $solutions.Count
+$successCount = $successSolutions.Count
+$failCount = $totalCount - $successCount
+$failColor = if ($failCount -gt 0) { "Red" } else { "Gray" }
+
+# --- RIEPILOGO FINALE ---
+if (-not $agentMode) {
+ Write-Host "`n==================================================" -ForegroundColor Magenta
+ Write-Host "๐ Processo di verifica completato in $elapsedTime!" -ForegroundColor Magenta
+ Write-Host "==================================================" -ForegroundColor Magenta
+ Write-Host " Soluzioni Totali: $totalCount" -ForegroundColor White
+ Write-Host " Successi totali: $successCount" -ForegroundColor Green
+ Write-Host " Errori reali: $failCount" -ForegroundColor $failColor
+ Write-Host " Tempo impiegato: $elapsedTime" -ForegroundColor Cyan
+
+ if ($failCount -gt 0) {
+ Write-Host "`nโ Elenco delle soluzioni con ERRORI REALI:" -ForegroundColor Red
+ foreach ($res in $parallelResults) {
+ if ($successSolutions -notcontains $res.Name) {
+ Write-Host " - $($res.Name)" -ForegroundColor Red
+ Write-Host " ๐ Ultimi dettagli errore:" -ForegroundColor DarkRed
+ $res.Log | Where-Object { $_ -match "error" } | Select-Object -First 3 | Write-Host -ForegroundColor Gray
+ }
+ }
+ }
+ else {
+ Write-Host "`n๐ Eccellente! Tutte le soluzioni compilano senza errori." -ForegroundColor Green
+ }
+ Write-Host "==================================================" -ForegroundColor Magenta
+}
+
+# Exit code standard per ambienti automatizzati (0 = Successo, 1 = Fallimento)
+if ($failCount -gt 0) { exit 1 } else { exit 0 }
\ No newline at end of file