Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Damit das Debuggen in Containern funktioniert, verwendet Visual Studio die Volumezuordnung, um den Debugger und die NuGet-Ordner vom Hostcomputer zuzuordnen. Die Volumezuordnung ist in der Docker-Dokumentation beschrieben. Sie können die Volume-Zuordnungen für einen Container anzeigen, indem Sie das Fenster Container in Visual Studioverwenden.
Voraussetzungen
- Docker Desktop oder Podman Desktop.
- Visual Studio oder für Podman-Unterstützung , Visual Studio 2026 mit installierter ASP.NET und Webentwicklung, Azure-Entwicklungsarbeitsauslastung und/oder .NET-Desktopentwicklungsworkload .
- Docker Desktop.
- Visual Studio mit installierter ASP.NET- und Webentwicklung, Azure-Entwicklungsarbeitsauslastung und/oder .NET-Desktopentwicklungsworkload .
Volumebereitstellungen in Visual Studio-Containerimages
Dies sind die Volumes, die in Ihrem Container bereitgestellt werden. Was in Ihren Containern angezeigt wird, hängt möglicherweise von der Nebenversion von Visual Studio ab, die Sie verwenden.
| Volumen | Beschreibung |
|---|---|
| App-Ordner | Enthält den Projektordner, in dem sich die Dockerfile-Datei befindet. |
| NuGet-Paketordner | Enthält die NuGet-Pakete und Fallbackordner, die aus der obj{project}.csproj.nuget.g.props Datei im Projekt gelesen werden. |
| Remotedebugger | Enthält die Bits, die zum Ausführen des Debuggers im Container erforderlich sind, abhängig vom Projekttyp. Weitere Informationen finden Sie unter Anpassen von Containerimages zum Debuggen. |
| Quellordner | Enthält den Buildkontext, der an Docker-Befehle übergeben wird. |
| VSTools | Enthält Visual Studio-Tools, die das Arbeiten mit dem Container unterstützen, einschließlich Unterstützung für den Debugger, die Container Fenster, die Behandlung von Azure-Token, der Hot Reload-Agent und der Distroless Helper. |
Für .NET 8 und höher können zusätzliche Bereitstellungspunkte sowohl im Stammverzeichnis als auch für den Anwendungsbenutzer vorhanden sein, die Benutzergeheimnisse und das HTTPS-Zertifikat enthalten.
Anmerkung
Wenn Sie das Docker-Modul im Windows-Subsystem für Linux (WSL) ohne Docker Desktop verwenden, legen Sie die Umgebungsvariable VSCT_WslDaemon=1 so fest, dass Visual Studio WSL-Pfade beim Erstellen von Volume mounts verwendet. Das NuGet-Paket Microsoft.VisualStudio.Azure.Containers.Tools.Targets 1.20.0-Preview 1 ist ebenfalls erforderlich.
Dies sind die Volumes, die in Ihrem Container bereitgestellt werden. Was in Ihren Containern angezeigt wird, hängt möglicherweise von der Nebenversion von Visual Studio 2022 ab, die Sie verwenden.
| Volumen | Beschreibung |
|---|---|
| App-Ordner | Enthält den Projektordner, in dem sich die Dockerfile-Datei befindet. |
| NuGet-Paketordner | Enthält die NuGet-Pakete und Fallbackordner, die aus der obj{project}.csproj.nuget.g.props Datei im Projekt gelesen werden. |
| Remotedebugger | Enthält die Bits, die zum Ausführen des Debuggers im Container erforderlich sind, abhängig vom Projekttyp. Weitere Informationen finden Sie unter Anpassen von Containerimages zum Debuggen. |
| Quellordner | Enthält den Buildkontext, der an Docker-Befehle übergeben wird. |
| VSTools | Enthält Visual Studio-Tools, die das Arbeiten mit dem Container unterstützen, einschließlich Unterstützung für den Debugger, die Container Fenster, die Behandlung von Azure-Token, der Hot Reload-Agent und der Distroless Helper. |
Für .NET 8 und höher können zusätzliche Bereitstellungspunkte im Stammverzeichnis und für den App-Benutzer vorhanden sein, die Benutzergeheimnisse und das HTTPS-Zertifikat enthalten.
Anmerkung
Visual Studio 17.10 und höher Wenn Sie das Docker-Modul im Windows-Subsystem für Linux (WSL) ohne Docker Desktop verwenden, legen Sie die Umgebungsvariable VSCT_WslDaemon=1 so fest, dass Visual Studio WSL-Pfade beim Erstellen von Volume mounts verwendet. Das NuGet-Paket Microsoft.VisualStudio.Azure.Containers.Tools.Targets 1.20.0-Preview 1 ist ebenfalls erforderlich.
Für ASP.NET Core-Web-Apps gibt es möglicherweise zwei zusätzliche Ordner für das SSL-Zertifikat und die Benutzergeheimnisse, die unter Verwenden von SSL für containerisierte ASP.NET Core-Apps ausführlicher erklärt werden.
Bereitstellen eines Containervolumes
Sie können ein weiteres Volume mit den docker run-Befehlszeilenargumenten bereitstellen.
Öffnen Sie die Projektdatei für das containerisierte Projekt.
Um ein neues Befehlszeilenargument anzugeben, fügen Sie die MSBuild-Eigenschaft
DockerfileRunArgumentshinzu, und stellen Sie die syntax-voder--mountbereit. Ein Beispiel: Die folgende Syntax erstellt ein Volumemyvolumeund stellt es im Container im Ordner/scratchbereit.<PropertyGroup> <DockerfileRunArguments>-v myvolume:/scratch</DockerfileRunArguments> </PropertyGroup>In der Docker-Dokumentation finden Sie die Befehlszeilensyntax für die Optionen -v oder -mount.
Sie können ein anderes Volume bereitstellen, indem Sie Befehlszeilenargumente für die Containerlaufzeit, docker.exe oder podman.exeangeben.
Öffnen Sie launchSettings.json für das containerisierte Projekt.
Um ein neues Befehlszeilenargument anzugeben, fügen Sie das JSON
containerRunArgumentshinzu und geben die-voder--mountSyntax an. Ein Beispiel: Die folgende Syntax erstellt ein Volumemyvolumeund stellt es im Container im Ordner/scratchbereit."containerRunArguments": "-v myvolume:/scratch"In der Dokumentation des Containerlaufzeitanbieters finden Sie die Befehlszeilensyntax für die Docker--v- oder -mount-Optionen oder die Option "Podman -v " und die Option "Podman --mount".