functions/appdev/Invoke-Alc.ps1
function Invoke-Alc { <# .SYNOPSIS Führt den AL-Compiler (`alc.exe`) mit den angegebenen Parametern aus. .DESCRIPTION Diese Funktion ruft den AL-Compiler (`alc.exe`) auf, um eine AL-Erweiterung zu kompilieren. Sie prüft zunächst, ob die übergebene `alc.exe`-Datei existiert, führt den Compiler dann mit den übergebenen Parametern aus und prüft nach Ausführung den Rückgabewert (`$LASTEXITCODE`), um ggf. Warnungen bei Fehlern auszugeben. .PARAMETER AlcExe Der vollständige Pfad zur `alc.exe`-Datei (AL-Compiler). .PARAMETER CompilerParameter Ein Array oder String mit Parametern, die an den AL-Compiler übergeben werden sollen. .EXAMPLE Invoke-Alc -AlcExe "C:\AL\10.0.0.0\alc.exe" -CompilerParameter @("-project:.\MyApp", "-packagecache:.\.alpackages") Kompiliert das Projekt `MyApp` mit den angegebenen Parametern. .OUTPUTS Gibt keine Daten direkt zurück. Die Funktion führt den Compiler aus und zeigt ggf. eine Warnung, wenn der Rückgabewert ungleich 0 ist. .NOTES Die Funktion behandelt den Fehlercode `-1073740791` (Zugriffsverletzung / 0xC0000409) nicht als harten Fehler, da dieser beim AL-Compiler gelegentlich vorkommt. #> [CmdletBinding()] param ( $AlcExe, $CompilerParameter ) begin { Test-Path -Path $AlcExe -PathType Leaf -ErrorAction:Stop Write-Debug "alc $([string]::Join(' ', $CompilerParameter))" } process { & $AlcExe $CompilerParameter } end { if ($LASTEXITCODE -ne 0 -and $LASTEXITCODE -ne -1073740791) { Write-Warning "Compilation failed (LASTEXITCODE: $($LASTEXITCODE))" } } } |