.NET MAUI: UnauthorizedAccessException beim Build beheben
Auf einen Blick
| Gilt für | .NET MAUI 9/10 mit Visual Studio 2026 und Pair to Mac bzw. .NET CLI auf macOS |
|---|---|
| Bereich | Softwareentwicklung |
| Dauer | 5–10 Minuten |
| Rechte | Entwicklungsumgebung, Benutzerrechte im Projektordner |
| Stand | Oktober 2026 |
Eine UnauthorizedAccessException beim Build („Access to the path … is denied“) bricht den Build einer .NET-MAUI-App ab, weil eine Datei in den Ausgabeordnern gesperrt ist oder die Rechte nicht stimmen. Meist hilft es, die Ordner bin und obj zu löschen – bei iOS-Builds über Pair to Mac auch den Build-Cache auf dem Mac.

Problem
- Der Build bricht ab mit
System.UnauthorizedAccessException: Access to the path '…\bin\…' is deniedoderMSB3027/MSB3021(„Datei konnte nicht kopiert werden“). - Betroffen sind oft iOS- oder Mac-Catalyst-Builds, bei denen ein altes App-Bundle (
.app) im Ausgabeordner liegt.
Ursache
- Die App läuft noch (Emulator, Simulator, Windows-App) und sperrt ihre Dateien.
- Virenscanner, OneDrive oder andere Synchronisationsdienste greifen auf
bin/objzu. - Dateien wurden mit anderen Rechten erzeugt (z. B. ein früherer Build mit
sudoauf dem Mac). - Ein beschädigtes App-Bundle im Ausgabeordner lässt sich nicht überschreiben.
Lösung
Schritt 1: App beenden und Ausgabeordner löschen
Laufende Debug-Sitzung und die App im Emulator/Simulator beenden, Visual Studio schließen und im Projektordner löschen:
# Windows (PowerShell, im Projektordner)
Remove-Item -Recurse -Force .\bin, .\obj
# macOS
rm -rf bin obj
Danach neu bauen (dotnet build bzw. Projektmappe neu erstellen).
Schritt 2: Build-Cache auf dem Mac leeren (Pair to Mac)
Visual Studio legt iOS-Builds auf dem gekoppelten Mac in einem eigenen Cache ab. Ist dort ein Bundle gesperrt, den Cache löschen:
rm -rf ~/Library/Caches/Xamarin/mtbs/builds/*
Der Ordnername enthält aus historischen Gründen noch „Xamarin“. Anschließend in Visual Studio die Verbindung zum Mac neu herstellen.
Schritt 3: Rechte reparieren
Wurde auf dem Mac einmal mit sudo gebaut, gehören Dateien dem Benutzer root. Besitz zurücksetzen:
sudo chown -R "$(whoami)" ~/Projekte/MeineApp ~/.nuget ~/Library/Caches/Xamarin
Schritt 4: Synchronisation und Virenscanner ausnehmen
- Projekte nicht in OneDrive-, Dropbox- oder iCloud-Ordnern ablegen.
- Für den Quellcode-Ordner (z. B.
C:\Dev) unter Windows ein Dev Drive nutzen oder den Ordner im Virenschutz als Ausnahme eintragen – nach Rücksprache mit der IT-Sicherheit.
Hinweise
- Lange Pfade: Unter Windows führen sehr lange Projektpfade zu ähnlichen Fehlern. Projekte möglichst kurz ablegen, z. B.
C:\Dev\MeineApp. - Workload-Wechsel: Nach einem Update der MAUI-Workloads immer
binundobjlöschen, damit keine Reste der alten Version stören. - Bei Build-Problemen und CI/CD für Apps unterstützt Sie die individuelle Softwareentwicklung von m.a.x. it.
Siehe auch
Links und Quellen
- Microsoft Learn: Problembehandlung bei .NET MAUI
- Individuelle Softwareentwicklung und App-Entwicklung von m.a.x. it
Über m.a.x. it Die m.a.x. Informationstechnologie AG ist seit über 30 Jahren IT-Partner mittelständischer und großer Unternehmen in München und bietet maßgeschneiderte Lösungen und Services in den Bereichen Cloud, Cybersecurity, Netzwerk, Windows, Linux und Softwareentwicklung. Sie haben eine Frage zu diesem Artikel oder brauchen Unterstützung?
