Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Para que a depuração funcione em contêineres, o Visual Studio usa o mapeamento de volume para mapear o depurador e as pastas NuGet da máquina host. O mapeamento de volume é descrito na documentação do Docker aqui. Você pode exibir os mapeamentos de volume para um contêiner usando a janela Contêineres no Visual Studio.
Pré-requisitos
- Docker Desktop ou Podman Desktop.
- Visual Studio ou, para suporte do Podman, Visual Studio 2026 com a carga de trabalho de desenvolvimento ASP.NET e web, carga de trabalho de desenvolvimento do Azure e/ou carga de trabalho de desenvolvimento de desktop .NET instalada.
- Área de trabalho do Docker.
- Visual Studio com a carga de trabalho de desenvolvimento ASP.NET e Web, carga de trabalho de desenvolvimento do Azure e/ou carga de trabalho de desenvolvimento de área de trabalho .NET instalada.
Montagem de volume em imagens de container do Visual Studio
Aqui estão os volumes que são montados em seu contêiner. O que você vê em seus contêineres pode diferir dependendo da versão secundária do Visual Studio que você está usando.
| Volume | Descrição |
|---|---|
| da pasta App | Contém a pasta do projeto onde o Dockerfile está localizado. |
| pastas de pacotes NuGet | Contém os pacotes NuGet e as pastas de fallback que são lidas a partir do ficheiro obj{project}.csproj.nuget.g.props no projeto. |
| Depurador remoto | Contém os bits necessários para executar o depurador no contêiner, dependendo do tipo de projeto. Para obter mais informações, consulte Personalizar imagens de contêiner para depuração. |
| pasta de origem | Contém o contexto de compilação que é passado para os comandos do Docker. |
| VSTools | Contém ferramentas do Visual Studio que dão suporte ao trabalho com o container, incluindo suporte para o depurador, a janela Containers, gestão de tokens do Azure, o agente Hot Reload e o Auxiliar Distroless. |
Para o .NET 8, pontos de montagem adicionais na raiz e para o usuário do aplicativo que contêm segredos de usuário e o certificado HTTPS também podem estar presentes.
Observação
Se você estiver usando o Docker Engine no Windows Subsystem for Linux (WSL) sem o Docker Desktop, defina a variável VSCT_WslDaemon=1 de ambiente para que o Visual Studio use caminhos WSL ao criar montagens de volume. O pacote NuGet Microsoft.VisualStudio.Azure.Containers.Tools.Targets 1.20.0-Preview 1 também é necessário.
Aqui estão os volumes que são montados em seu contêiner. O que você vê em seus contêineres pode diferir dependendo da versão secundária do Visual Studio 2022 que você está usando.
| Volume | Descrição |
|---|---|
| da pasta App | Contém a pasta do projeto onde o Dockerfile está localizado. |
| pastas de pacotes NuGet | Contém os pacotes NuGet e as pastas de fallback que são lidas a partir do ficheiro obj{project}.csproj.nuget.g.props no projeto. |
| Depurador remoto | Contém os bits necessários para executar o depurador no contêiner, dependendo do tipo de projeto. Para obter mais informações, consulte Personalizar imagens de contêiner para depuração. |
| pasta de origem | Contém o contexto de compilação que é passado para os comandos do Docker. |
| VSTools | Contém ferramentas do Visual Studio que dão suporte ao trabalho com o container, incluindo suporte para o depurador, a janela Containers, gestão de tokens do Azure, o agente Hot Reload e o Auxiliar Distroless. |
Para o .NET 8, pontos de montagem adicionais na raiz e para o usuário do aplicativo que contêm segredos de usuário e o certificado HTTPS também podem estar presentes.
Observação
Visual Studio 17.10 e posterior Se você estiver usando o Docker Engine no Windows Subsystem for Linux (WSL) sem o Docker Desktop, defina a variável VSCT_WslDaemon=1 de ambiente para que o Visual Studio use caminhos WSL ao criar montagens de volume. O pacote NuGet Microsoft.VisualStudio.Azure.Containers.Tools.Targets 1.20.0-Preview 1 também é necessário.
Para aplicações web ASP.NET Core, pode haver duas pastas adicionais para o certificado SSL e as informações secretas do utilizador, o que é explicado com mais detalhes em Usar SSL para aplicações ASP.NET Core em contentores
Montar um volume de contêiner
Você pode montar outro volume usando os argumentos de linha de comando docker run.
Abra o arquivo de projeto para o projeto em contêiner.
Para especificar um novo argumento de linha de comando, adicione a propriedade MSBuild
DockerfileRunArgumentse forneça a sintaxe-vou--mount. Por exemplo, a sintaxe a seguir cria um volumemyvolumee o monta no contêiner na pasta/scratch.<PropertyGroup> <DockerfileRunArguments>-v myvolume:/scratch</DockerfileRunArguments> </PropertyGroup>Consulte a documentação do Docker para a sintaxe da linha de comando das opções -v ou --mount.
Você pode montar outro volume especificando argumentos de linha de comando para o tempo de execução do contêiner, docker.exe ou podman.exe.
Abra launchSettings.json para o projeto conteinerizado.
Para especificar um novo argumento de linha de comando, adicione o JSON
containerRunArguments, e forneça-vou--mountsintaxe. Por exemplo, a sintaxe a seguir cria um volumemyvolumee o monta no contêiner na pasta/scratch."containerRunArguments": "-v myvolume:/scratch"Consulte a documentação do provedor de tempo de execução do contêiner para obter a sintaxe da linha de comando para as opções Docker -v ou --mount , ou a opção Podman -v e a opção Podman --mount.