Solução de problemas e problemas conhecidos (Ferramentas do Visual Studio para Unity)Troubleshooting and known issues (Visual Studio Tools for Unity)

Nesta seção, você encontrará soluções para problemas comuns das Ferramentas do Visual Studio para Unity, as descrições de problemas conhecidos e aprenderá como ajudar a melhorar as Ferramentas do Visual Studio para Unity por meio de relatórios de erro.In this section, you'll find solutions to common issues with Visual Studio Tools for Unity, descriptions of known issues, and learn how you can help improve Visual Studio Tools for Unity by reporting errors.

Solução de problemas com a conexão entre o Unity e o Visual StudioTroubleshooting the connection between Unity and Visual Studio

Confirme que Editor Attaching está habilitadoConfirm Editor Attaching is enabled

No menu do Unity, selecione Editar preferências de > e, em seguida, selecione a guia Ferramentas externas . Confirme se a caixa de seleção de anexação do editor está habilitada.In the Unity Menu, select Edit > Preferences and then select the External Tools tab. Confirm that the Editor Attaching checkbox is enabled. Para saber mais, confira a Documentação de preferências do Unity.For more information, see the Unity Preferences documentation.

Não é possível anexarUnable to attach

  • Tente desabilitar o antivírus temporariamente ou criar regras de exclusão para o VS e o Unity.Try to temporarily disable your antivirus or create exclusion rules for both VS and Unity.
  • Tente desabilitar o firewall temporariamente ou criar regras para permitir a rede TCP/UDP entre o Unity e o VS.Try to temporarily disable your firewall or create rules for allowing TCP/UDP networking between VS and Unity.
  • Alguns programas, como o Team Viewer, podem interferir com a detecção do processo.Some programs, like Team Viewer, can interfere with process detection. Você pode tentar interromper temporariamente algum software adicional para ver se algo muda.You can try to temporarily stop any extra software to see if it changes something.
  • Não renomeie o executável principal do Unity, uma vez que o VSTU está monitorando apenas os processos de “Unity.exe”.Do not rename the main Unity executable, as VSTU is only monitoring "Unity.exe" processes.

O Visual Studio falhaVisual Studio crashes

O problema pode ser causado pela corrupção do cache do MEF do Visual Studio.This issue can be due to the Visual Studio MEF cache being corrupted.

Tente remover a pasta a seguir para redefinir o cache do MEF (feche o Visual Studio antes de fazer isso):Try removing the following folder to reset the MEF cache (close Visual Studio before doing this):

%localappdata%\Microsoft\VisualStudio\<version>\ComponentModelCache

Isso deve corrigir o problema.This should fix your issue. Caso o problema persista, execute um prompt de comando do desenvolvedor do Visual Studio como administrador e use o seguinte comando:In case you are still experiencing the problem, run a Developer Command Prompt for Visual Studio as Administrator and use the following command:

 devenv /setup

O Visual Studio para de responderVisual Studio stops responding

Vários plug-ins do Unity como Parse, FMOD, UMP (Player de Mídia Universal), ZFBrowser ou Embedded Browser usam threads nativos.Several Unity plugins like Parse, FMOD, UMP (Universal Media Player), ZFBrowser, or Embedded Browser are using native threads. Isso é um problema quando um plug-in acaba anexando um thread nativo ao runtime, fazendo chamadas de bloqueio para o sistema operacional.It’s an issue when a plugin ends up attaching a native thread to the runtime, which then does blocking calls to the OS. Isso significa que o Unity não pode interromper esse thread para o depurador (ou recarregamento de domínio) e parar de responder.This means Unity can't interrupt that thread for the debugger (or domain reload) and stop responding.

Para o FMOD, há uma solução alternativa. Você pode passar o sinalizador de inicialização FMOD_STUDIO_INIT_SYNCHRONOUS_UPDATE para desabilitar o processamento assíncrono e executar todo o processamento no thread principal.For FMOD, there is a workaround, you can pass FMOD_STUDIO_INIT_SYNCHRONOUS_UPDATE initialization flag to disable asynchronous processing and perform all processing on the main thread.

Projeto incompatível no Visual StudioIncompatible project in Visual Studio

Primeiro, verifique se o Visual Studio está definido como seu editor de script externo no Unity (Editar/Preferências/Ferramentas Externas).First, check that Visual Studio is set as your external script editor in Unity (Edit/Preferences/External Tools). Em seguida, verifique se o plug-in do Visual Studio está instalado no Unity (Ajuda/Sobre deve exibir uma mensagem, como as Ferramentas do Microsoft Visual Studio para Unity estão habilitadas na parte inferior).Then check that the Visual Studio plugin is installed in Unity (Help/About must display a message like Microsoft Visual Studio Tools for Unity is enabled at the bottom). Em seguida, verifique se a extensão está instalada corretamente no Visual Studio (Ajuda/Sobre).Then check that the extension is properly installed in Visual Studio (Help/About).

Recargas extras, ou o Visual Studio perde todas as janelas abertasExtra reloads, or Visual Studio losing all open windows

Certifique-se de nunca tocar nos arquivos de projeto diretamente de um processador de ativos ou de qualquer outra ferramenta.Be sure to never touch project files directly from an asset processor or any other tool. Se você realmente precisar manipular o arquivo de projeto, expomos uma API para isso.If you really need to manipulate the project file, we expose an API for that. Consulte a seção de Problemas com referências de assembly.Please check the Assembly references issues section.

Se você tiver recargas extras ou se o Visual Studio estiver perdendo todas as janelas abertas ao recarregar, verifique se você tem os pacotes corretos de direcionamento do .NET instalados.If you experience extra reloads or if Visual Studio is losing all open Windows on reload, make sure that you have proper .NET targeting packs installed. Verifique a seção a seguir sobre estruturas para obter mais informações.Check the following section about frameworks for more information.

O depurador não é interrompido quando há exceçõesThe debugger does not break on exceptions

Ao usar o runtime do Unity herdado (equivalente ao .NET 3.5), o depurador sempre será interrompido quando uma exceção ficar sem tratamento (= fora de um bloco try/catch).When using the legacy Unity runtime (.NET 3.5 equivalent), the debugger will always break when an exception is unhandled (=outside a try/catch block). Se a exceção for manipulada, o depurador usará a janela Configurações de Exceção para determinar se uma interrupção é necessária ou não.If the exception is handled, the debugger will use the Exception Settings Window to determine if a break is required or not.

Com o novo runtime (equivalente ao .NET 4.6), o Unity introduziu uma nova forma de gerenciar exceções de usuário e, como resultado, todas as exceções são vistas como "tratados pelo usuário", mesmo se estiverem fora de um bloco try/catch.With the new runtime (.NET 4.6 equivalent), Unity introduced a new way for managing user exceptions and as a result, all exceptions are seen as "user-handled" even if they are outside a try/catch block. Por isso, agora é necessário verificá-los explicitamente na janela Configurações de Exceção se você quiser que o depurador seja interrompido.That's why you now need to explicitly check them in the Exception Settings Window if you want the debugger to break.

Na janela Configurações de Exceção (Depurar > Windows > Configurações de Exceção), expanda o nó de uma categoria de exceções (por exemplo, Exceções de Common Language Runtime, ou seja, exceções de .NET) e marque a caixa de seleção referente à exceção específica que você deseja capturar nessa categoria (por exemplo, System.NullReferenceException).In the Exception Settings window (Debug > Windows > Exception Settings), expand the node for a category of exceptions (for example, Common Language Runtime Exceptions, meaning .NET exceptions), and select the check box for the specific exception you want to catch within that category (for example System.NullReferenceException). Você também pode selecionar uma categoria inteira de exceções.You can also select an entire category of exceptions.

No Windows, o Visual Studio pede para baixar a estrutura de destino do UnityOn Windows, Visual Studio asks to download the Unity target framework

As Ferramentas do Visual Studio para Unity requerem o .NET Framework 3.5, que não está instalado por padrão no Windows 8 nem no 10.Visual Studio Tools for Unity requires the .NET framework 3.5, which isn't installed by default on Windows 8 or 10. Para corrigir esse problema, siga as instruções para baixar e instalar o .NET Framework 3.5.To fix this issue, follow the instructions to download and install the .NET framework 3.5.

Ao usar o novo runtime do Unity, versão de pacotes de direcionamento do .NET 4.6 e 4.7.1 também são necessários.When using the new Unity runtime, .NET targeting packs version 4.6 and 4.7.1 are also required. É possível usar o instalador do VS2017 para instalá-los rapidamente (modificar sua instalação do VS2017, componentes individuais, categoria do .NET, selecionar todos os pacotes de direcionamento 4.x).It is possible to use the VS2017 installer to quickly install them (modify your VS2017 installation, individual components, .NET category, select all 4.x targeting packs).

Problemas de referência de assemblyAssembly reference issues

Se seu projeto consegue lidar com referências complexas ou se você quiser controlar melhor essa etapa de geração, use nossa API para manipular o conteúdo da solução ou do projeto gerado.If your project is complex reference-wise or if you want to better control this generation step, you can use our API for manipulating the generated project or solution content. Você também pode usar arquivos de resposta no seu projeto Unity, que serão processados para você.You can also use response files in your Unity project and we'll process them.

Pontos de interrupção com um avisoBreakpoints with a warning

Se o Visual Studio não conseguir encontrar um local de origem para um ponto de interrupção específico, você verá um aviso ao lado do ponto de interrupção.If Visual Studio is unable to find a source location for a specific breakpoint you will see a warning around your breakpoint. Verifique se o script que você está usando está carregado e está sendo usado corretamente na cena atual do Unity.Check that the script you are using is properly loaded/used in the current Unity scene.

Pontos de interrupção não atingidosBreakpoints not hit

Verifique se o script que você está usando está carregado e está sendo usado corretamente na cena atual do Unity.Check that the script you are using is properly loaded/used in the current Unity scene. Feche o Visual Studio e o Unity e exclua os arquivos gerados (*.csproj, *.sln) e toda a pasta Biblioteca.Quit both Visual Studio and Unity then delete all generated files (*.csproj, *.sln) and the whole Library folder.

Não é possível depurar players AndroidUnable to debug Android players

O multicast é usado para a detecção de player (que é o mecanismo padrão usado pelo Unity), mas depois disso, é usada uma conexão TCP regular para anexar o depurador.We use multicast for player detection (which is the default mechanism used by Unity), but after that we use a regular TCP connection to attach the debugger. A fase de detecção é o principal problema para dispositivos Android.The detection phase is the main issue for Android devices.

O Wi-Fi é versátil, mas é muito lento em comparação com o USB devido à latência.Wifi is versatile but super slow compared to USB because of latency. Foi constatada uma falta de suporte adequado ao multicast para alguns roteadores ou dispositivos (a série Nexus é conhecida por isso).We saw a lack of proper multicast support for some routers or devices (Nexus series are well known for this).

O USB é bastante rápido para a depuração, e as Ferramentas do Visual Studio para Unity agora são capazes de detectar dispositivos USB e de se comunicar com o servidor adb para encaminhar corretamente as portas para depuração.USB is super-fast for debugging, and Visual Studio Tools for Unity is now able to detect USB devices, and talk to the adb server to properly forward ports for debugging.

Problemas com o Visual Studio 2015 e o IntelliSense ou com a coloração de códigoIssues with Visual Studio 2015 and IntelliSense or code coloration

Tente atualizar o Visual Studio 2015 para atualização 3.Try upgrading your Visual Studio 2015 to update 3.

Problemas conhecidosKnown issues

Há problemas conhecidos nas Ferramentas do Visual Studio para Unity, decorrentes de como o depurador interage com a versão mais antiga do compilador C# do Unity.There are known issues in Visual Studio Tools for Unity that result from how the debugger interacts with Unity's older version of the C# compiler. Estamos trabalhando para ajudar a corrigir esses problemas, mas, enquanto isso, você poderá enfrentar os seguintes problemas:We're working to help fix these problems, but you might experience the following issues in the meantime:

  • O Unity pode falhar durante a depuração.When debugging, Unity sometimes crashes.

  • O Unity pode congelar durante a depuração.When debugging, Unity sometimes freezes.

  • A intervenção ou saída de métodos pode se comportar incorretamente, especialmente em iteradores ou em instruções switch.Stepping into and out of methods sometimes behaves incorrectly, especially in iterators or within switch statements.

Relatar errosReport errors

Ajude-nos a melhorar a qualidade das Ferramentas do Visual Studio para Unity enviando relatórios de erro quando ocorrerem falhas, congelamentos ou outros erros.Please help us improve the quality of Visual Studio Tools for Unity by sending error reports when you experience crashing, freezes, or other errors. Isso nos ajuda a investigar e corrigir problemas nas Ferramentas do Visual Studio para Unity.This helps us investigate and fix problems in Visual Studio Tools for Unity. Obrigado!Thank you!

Como relatar um erro quando o Visual Studio congelaHow to report an error when Visual Studio freezes

Há relatórios que indicam que, às vezes, o Visual Studio congela ao depurar com as Ferramentas do Visual Studio para Unity, mas precisamos de mais dados para entender esse problema.There are reports that Visual Studio sometimes freezes when debugging with Visual Studio Tools for Unity, but we need more data to understand this problem. Ajude-nos a investigá-lo seguindo as etapas abaixo.You can help us investigate by following the steps below.

Para relatar que o Visual Studio congela durante a depuração com as Ferramentas do Visual Studio para UnityTo report that Visual Studio freezes while debugging with Visual Studio Tools for Unity

No Windows:On Windows:

  1. Abra uma nova instância do Visual Studio.Open a new instance of Visual Studio.

  2. Abra o diálogo Anexar ao Processo.Open the Attach to Process dialog. Na nova instância do Visual Studio, escolha Depurar e Anexar ao Processo no menu principal.In the new instance of Visual Studio, on the main menu, choose Debug , Attach to Process.

  3. Anexe o depurador à instância congelada do Visual Studio.Attach the debugger to the frozen instance of Visual Studio. No diálogo Anexar ao Processo , selecione a instância congelada do Visual Studio na tabela Processos Disponíveis e, em seguida, escolha o botão Anexar.In the Attach to Process dialog, select the frozen instance of Visual Studio from the Available Processes table, then choose the Attach button.

  4. Pause o Depurador.Pause the Debugger. Na nova instância do Visual Studio, no menu principal, escolha Depurar , Interromper Tudo ou apenas pressione Ctrl + Alt + Break.In the new instance of Visual Studio, on the main menu, choose Debug , Break All , or just press Ctrl+Alt+Break.

  5. Crie um despejo de thread.Create a thread-dump. Na janela Comando, insira o seguinte comando e pressione Enter :In the Command window, enter the following command and press Enter :

    Debug.ListCallStack /AllThreads /ShowExternalCode
    

    Talvez seja necessário tornar a janela Comando visível primeiro.You might need to make the Command window visible first. No Visual Studio, escolha Exibir , Outras Janelas , janela Comando no menu principal.In Visual Studio, on the main menu, choose View , Other Windows , Command Window.

No Mac:On Mac:

  1. Abra um terminal e obtenha o PID do Visual Studio para Mac:Open a terminal and get the PID of Visual Studio for Mac:

    ps aux | grep "[V]isual Studio.app"
    
  2. Inicie o depurador lldb:Launch the lldb debugger:

    lldb
    
  3. Anexe à instância do Visual Studio para Mac usando o PID:Attach to the Visual Studio for Mac instance using the PID:

    process attach --pid THE_PID_OF_THE_VSFM_PROCESS
    
  4. Recupere o rastreamento de pilha de todos os threads:Retrieve the stacktrace for all the threads:

    bt all
    

Por fim, envie o despejo de thread para vstusp@microsoft.com , juntamente com uma descrição do que você estava fazendo quando o Visual Studio ficou congelado.Finally, send the thread-dump to vstusp@microsoft.com, along with a description of what you were doing when Visual Studio became frozen.

Veja tambémSee also