$ErrorActionPreference = "Stop" $baseDir = Split-Path -Parent $MyInvocation.MyCommand.Path $candidates = @( "$env:WINDIR\Microsoft.NET\Framework64\v4.0.30319\csc.exe", "$env:WINDIR\Microsoft.NET\Framework\v4.0.30319\csc.exe" ) $compiler = $candidates | Where-Object { Test-Path -LiteralPath $_ } | Select-Object -First 1 if (-not $compiler) { throw "C# compiler csc.exe wurde nicht gefunden." } & $compiler /nologo /target:winexe /out:(Join-Path $baseDir "FirefoxLauncher.exe") (Join-Path $baseDir "FirefoxLauncher.cs") if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE } & powershell.exe -NoProfile -ExecutionPolicy Bypass -File (Join-Path $baseDir "FirefoxSessionVault.ps1") -Mode Shortcut