Depuração remota de um projeto em C# ou Visual Basic no Visual Studio

Para depurar um aplicativo do Visual Studio implantado em um computador diferente, instale e execute as ferramentas remotas no computador em que você implantará seu aplicativo, configure seu projeto para se conectar ao computador remoto do Visual Studio e, em seguida, implante e execute seu aplicativo.

Screenshot of remote debugger components.

Para obter informações sobre a depuração remota de Aplicativos Universais do Windows (UWP), confira Depurar um Pacote de Aplicativo Instalado.

Requisitos

O depurador remoto é compatível com o Windows 7 e mais recentes, e em versões do Windows Server a partir do Windows Server 2008 Service Pack 2. Para obter uma lista completa dos requisitos, confira Requisitos.

Observação

Não há suporte para a depuração entre dois computadores conectados por meio de um proxy. A depuração por uma conexão de alta latência ou pouca largura de banda, como Internet discada ou pela Internet entre países/regiões, não é recomendada e pode falhar ou ser inaceitavelmente lenta.

Baixar e instalar ferramentas remotas

No dispositivo ou servidor remoto no qual você deseja depurar e não no computador do Visual Studio, baixe e instale a versão correta das ferramentas remotas usando os links na tabela a seguir.

  • Baixe a atualização mais recente das ferramentas remotas para a sua versão do Visual Studio. As versões de ferramentas remotas anteriores não são compatíveis com versões posteriores do Visual Studio. (Por exemplo, se você estiver usando o Visual Studio 2019, baixe a atualização mais recente das ferramentas remotas para Visual Studio 2019. Nesse cenário, não baixe as ferramentas remotas para o Visual Studio 2022)
  • Baixe as ferramentas remotas com a mesma arquitetura que a o computador em que você as está instalando. Por exemplo, se você deseja depurar aplicativos x86 em um computador remoto executando um sistema operacional x64, instale as ferramentas remotas de x64. Para depurar aplicativos x86, ARM ou x64 em um sistema operacional ARM64, instale as ferramentas remotas de ARM64.
Versão Link Observações
Visual Studio 2022 Ferramentas remotas Compatível com todas as versões do Visual Studio 2022. Baixe a versão correspondente ao sistema operacional do seu dispositivo (x86, x64 ou ARM64). Em versões mais antigas do Windows Server, confira Desbloquear o download do arquivo para obter ajuda para baixar as ferramentas remotas.
Visual Studio 2019 Ferramentas remotas Compatível com todas as versões do Visual Studio 2019. Baixe a versão correspondente ao sistema operacional do seu dispositivo (x86, x64 ou ARM64). Em versões mais antigas do Windows Server, confira Desbloquear o download do arquivo para obter ajuda para baixar as ferramentas remotas.
Visual Studio 2017 Ferramentas remotas Compatível com todas as versões do Visual Studio 2017. Baixe a versão correspondente ao sistema operacional do seu dispositivo (x86, x64 ou ARM64). No Windows Server, confira Desbloquear o download do arquivo para obter ajuda para baixar as ferramentas remotas.
Visual Studio 2015 Ferramentas remotas As ferramentas remotas para o Visual Studio 2015 estão disponíveis no My.VisualStudio.com. Se solicitado, ingresse no programa gratuito Visual Studio Dev Essentials ou entre com sua ID de assinatura do Visual Studio. No Windows Server, confira Desbloquear o download do arquivo para obter ajuda para baixar as ferramentas remotas.
Visual Studio 2013 Ferramentas remotas Página de download na documentação do Visual Studio 2013
Visual Studio 2012 Ferramentas remotas Página de download na documentação do Visual Studio 2012
Versão Link Observações
Visual Studio 2019 Ferramentas remotas Compatível com todas as versões do Visual Studio 2019. Baixe a versão correspondente ao sistema operacional do seu dispositivo (x86, x64 ou ARM64). No Windows Server, confira Desbloquear o download do arquivo para obter ajuda para baixar as ferramentas remotas. Para obter a versão mais recente das ferramentas remotas, abra a documentação do Visual Studio 2022.
Visual Studio 2017 Ferramentas remotas Compatível com todas as versões do Visual Studio 2017. Baixe a versão correspondente ao sistema operacional do seu dispositivo (x86, x64 ou ARM64). No Windows Server, confira Desbloquear o download do arquivo para obter ajuda para baixar as ferramentas remotas.
Visual Studio 2015 Ferramentas remotas As ferramentas remotas para o Visual Studio 2015 estão disponíveis no My.VisualStudio.com. Se solicitado, ingresse no programa gratuito Visual Studio Dev Essentials ou entre com sua ID de assinatura do Visual Studio. No Windows Server, confira Desbloquear o download do arquivo para obter ajuda para baixar as ferramentas remotas.
Visual Studio 2013 Ferramentas remotas Página de download na documentação do Visual Studio 2013
Visual Studio 2012 Ferramentas remotas Página de download na documentação do Visual Studio 2012

Você pode executar o depurador remoto copiando o msvsmon.exe para o computador remoto, em vez de instalar as ferramentas remotas. No entanto, o Assistente de Configuração do Depurador Remoto (rdbgwiz.exe) só estará disponível quando você instalar as ferramentas remotas. Talvez seja necessário usar o assistente de configuração se você quiser executar o depurador remoto como um serviço. Para obter mais informações, veja (Opcional) Configurar o depurador remoto como um serviço.

Observação

  • Para depurar aplicativos Windows 10 ou posteriores em dispositivos ARM, use o ARM64, que está disponível com a versão mais recente das ferramentas remotas.
  • Para depurar aplicativos Windows 10 em dispositivos Windows RT, use o ARM, que está disponível apenas no download de ferramentas remotas do Visual Studio 2015.
  • Para depurar aplicativos x64 em um sistema operacional ARM64, execute o msvsmon.exe x64 instalado com as ferramentas remotas de ARM64.

Dica

Em alguns cenários, pode ser mais eficiente executar o depurador remoto de um compartilhamento de arquivos. Para obter mais informações, confira Executar o depurador remoto de um compartilhamento de arquivo.

Configurar o depurador remoto

  1. No computador remoto, localize e inicie o Depurador Remoto no menu Iniciar.

    Se você não tiver permissões administrativas no computador remoto, clique com o botão direito do mouse no aplicativo Depurador Remoto e selecione Executar como administrador. Caso contrário, basta iniciá-lo normalmente.

    Se você estiver planejando anexar a um processo que está em execução como administrador ou estiver em execução em outra conta de usuário (como o IIS), clique com o botão direito do mouse no aplicativo Depurador Remoto e selecione Executar como administrador. Para obter mais informações, confira Executar o depurador remoto como administrador.

  2. Na primeira vez em que você iniciar o depurador remoto (ou antes de configurá-lo), o assistente Configuração de Depuração Remota aparecerá.

    Na maioria dos cenários, escolha Avançar até chegar à página do assistente Configurar o Firewall do Windows.

    Screenshot of remote debugger configuration.

    Screenshot of remote debugger configuration.

    Se a API de Serviços Web do Windows não estiver instalada, o que ocorre apenas no Windows Server 2008 R2, selecione o botão Instalar.

  3. Selecione pelo menos um tipo de rede no qual você deseja usar as ferramentas remotas. Se os computadores estiverem conectados por meio de um domínio, você deverá escolher o primeiro item. Se os computadores estiverem conectados por meio de um grupo de trabalho ou grupo doméstico, escolha o segundo ou terceiro item conforme apropriado.

    Depois, selecione Concluir para iniciar o depurador remoto.

    Em seguida, selecione Configurar depuração remota para iniciar o depurador remoto.

  4. Quando a configuração for concluída, a janela Depurador Remoto será exibida.

    Screenshot of remote debugger window

    Screenshot of remote debugger window

    Agora o depurador remoto está aguardando uma conexão. Use o nome do servidor e o número da porta mostrados para definir a configuração de conexão remota no Visual Studio.

Para interromper o depurador remoto, selecioneArquivo>Sair. Você pode reiniciá-lo no menu Iniciar ou na linha de comando:

<Remote debugger installation directory>\msvsmon.exe

Observação

Se você precisar adicionar permissões para outros usuários, altere o modo de autenticação ou o número da porta para o depurador remoto; veja Configurar o depurador remoto.

Depurar remotamente o projeto

O depurador não pode implantar aplicativos de área de trabalho do Visual C# ou Visual Basic em um computador remoto, mas você ainda pode depurá-los remotamente da seguinte maneira. O procedimento a seguir pressupõe que você deseja depurá-lo em um computador chamado MJO-DL, conforme mostrado na ilustração abaixo.

  1. Crie um projeto do WPF chamado MyWpf.

    Se você estiver tentando depurar remotamente um aplicativo MAUI em vez de WPF, consulte Depurar remotamente um aplicativo .NET MAUI no Windows.

  2. Defina um ponto de interrupção em algum lugar no código que seja facilmente alcançável.

    Por exemplo, você pode definir um ponto de interrupção em um manipulador de botões. Para fazer isso, abra MainWindow.xaml e adicione um controle de botão da caixa de ferramentas e clique duas vezes no botão para abrir seu manipulador.

  3. No Gerenciador de Soluções, clique com o botão direito do mouse no projeto e escolha Propriedades.

  4. Na página Propriedades, escolha a guia Depurar.

    Para projetos em C# direcionados ao .NET Core ou ao .NET 5+, a partir do Visual Studio 2022, escolha a Interface do usuário Depurar perfis de inicialização na guia Depurar para definir as configurações da depuração remota.

    Screenshot of the Debug launch profile UI in the Visual Studio Project Properties for C# and .NET.

    Caso contrário, você alterará as configurações de depuração remotas diretamente na guia Depurar.

    Screenshot of the Debug tab in the Visual Studio Project Properties. The Use remote machine property is set to 'MJO-DL:4022'.

  5. Verifique se a caixa de texto Diretório de trabalho está vazia.

  6. Escolha Usar computador remoto e digite yourmachinename:port na caixa de texto. (O número da porta é mostrado na janela do depurador remoto. O número da porta incrementa 2 em cada versão do Visual Studio).

    Neste exemplo, use:

    MJO-DL:4026 no Visual Studio 2022

    MJO-DL:4024 no Visual Studio 2019

  7. Verifique se Habilitar a depuração de código nativo não está selecionado.

  8. Compile o projeto.

  9. Crie uma pasta no computador remoto que tenha o mesmo caminho que a pasta Depurar no computador do Visual Studio: <caminho de origem>\MyWPF\MyWPF\bin\Debug.

  10. Copie o executável que você acabou de criar do computador do Visual Studio para a pasta recém-criada no computador remoto.

    Cuidado

    Não faça alterações no código ou recompile (ou deverá repetir essa etapa). O executável que você copiou para o computador remoto deve corresponder exatamente à origem e aos símbolos locais.

    Você pode copiar o projeto manualmente, usar XCopy, Robocopy, PowerShell ou outras opções.

  11. Verifique se o depurador remoto está em execução no computador de destino (se não estiver, pesquise por Depurador Remoto no menu Iniciar ). A janela do depurador remoto tem esta aparência.

    Screenshot of remote debugger window for VS 2022.

    Screenshot of remote debugger window for VS 2019.

  12. No Visual Studio, inicie a depuração (Depurar > Iniciar Depuração ou F5).

  13. Se solicitado, insira as credenciais de rede para se conectar ao computador remoto.

    As credenciais necessárias variam dependendo da configuração de segurança da rede. Por exemplo, em um computador de domínio, você pode inserir seu nome de domínio e senha. Em um computador que não seja de domínio, você pode inserir o nome do computador e um nome de conta de usuário válido, como MJO-DL\name@something.com, juntamente com a senha correta.

    Você deve ver que a janela principal do aplicativo WPF está aberta no computador remoto.

  14. Se necessário, execute uma ação para atingir o ponto de interrupção. Você verá que o ponto de interrupção está ativo. Se não estiver, os símbolos do aplicativo não foram carregados. Tente novamente e, se isso não funcionar, obtenha informações sobre como carregar símbolos e como solucioná-los em Noções básicas sobre arquivos de símbolo e configurações de símbolo do Visual Studio.

  15. No computador do Visual Studio, você deverá ver que a execução foi interrompida no ponto de interrupção.

    Se você tiver arquivos que não sejam de código e que precisem ser usados pelo aplicativo, precisará incluí-los no projeto do Visual Studio. Crie uma pasta de projeto para os arquivos adicionais (no Gerenciador de Soluções, clique em Adicionar > Nova Pasta). Em seguida, adicione os arquivos à pasta (no Gerenciador de Soluções, clique em Adicionar > Item Existente e selecione os arquivos). Na página Propriedades de cada arquivo, defina Copiar para Diretório de Saída como Copiar sempre.

Depuração remota de um aplicativo MAUI do .NET no Windows

Os aplicativos MAUI do .NET são aplicativos empacotados que precisam ser registrados quando implantados, não apenas copiados para um computador remoto. Para depurar remotamente, você pode implantar uma versão não empacotada do aplicativo.

Use um dos seguintes métodos para depurar remotamente:

  • Publique o aplicativo no dispositivo remoto como um aplicativo não empacotado usando as etapas descritas em Usar a CLI para publicar aplicativos MAUI do .NET não empacotados para Windows, e siga as etapas neste artigo para depuração remota. (Ignore as etapas para copiar o aplicativo.)

  • Siga as etapas neste artigo, incluindo as etapas para criar um perfil de Inicialização de Depuração para o projeto. Antes de iniciar a depuração, edite manualmente o arquivo launchSettings.json, substituindo o valor commandNameProject por MsixPackage, conforme mostrado aqui.

    "Remote Profile": {
      "commandName": "MsixPackage",
      "remoteDebugEnabled": true,
      "remoteDebugMachine": "170.200.20.22",
      "authenticationMode": "None"
    }
    

    Quando você inicia a depuração, esse método implanta primeiro uma versão não empacotada do aplicativo e a inicia.

    Observação

    Não é possível editar launchSettings.json na caixa de diálogo Debug Launch profile depois de alterar o valor para MsixPackage.

Configurar a depuração com símbolos remotos

Você deve ser capaz de depurar seu código com os símbolos gerados no computador do Visual Studio. O desempenho do depurador remoto é muito melhor quando você usa símbolos locais. Se você precisar usar símbolos remotos, informe o monitor de depuração remota para procurar símbolos no computador remoto.

Você pode usar a seguinte opção de linha de comando msvsmon para usar símbolos remotos para código gerenciado: Msvsmon /FallbackLoadRemoteManagedPdbs

Para obter mais informações, confira a ajuda de depuração remota (pressione F1 na janela do depurador remoto ou clique em Ajuda > Uso).