Problèmes connus et dépannage (Visual Studio Tools pour Unity)Troubleshooting and Known Issues (Visual Studio Tools for Unity)

Dans cette section, vous allez trouver les solutions aux problèmes courants rencontrés par Visual Studio Tools pour Unity, ainsi que la description de problèmes identifiés. Vous apprendrez aussi comment vous pouvez aider à améliorer Visual Studio Tools pour Unity en signalant les erreurs.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.

Résolution des problèmesTroubleshooting

Pour résoudre certains problèmes courants avec Visual Studio Tools pour Unity, consultez les sections suivantes.To resolve some common issues with Visual Studio Tools for Unity, see the following sections.

Visual Studio est en panneVisual Studio crashes

Cela peut être dû à un endommagement du cache MEF de Visual Studio.This can be due to the Visual Studio MEF cache being corrupted.

Vous devez supprimer le dossier suivant pour réinitialiser le cache MEF (fermez Visual Studio avant de le faire) :You should remove the following folder to reset the MEF cache (please close Visual Studio before doing this):

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

Votre problème devrait être résolu.This should fix your issue. Si le problème persiste, exécutez une invite de commandes développeur pour Visual Studio en tant qu’administrateur et utilisez la commande suivante :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

Problèmes avec VS2015 et IntelliSense ou coloration du code.Issues with VS2015 and IntelliSense or code coloration.

Vous devez tenter la mise à niveau vers Visual Studio 2015 Update 3.You should try to upgrade your Visual Studio 2015 to update 3.

Visual Studio se bloqueVisual Studio hangs

Plusieurs plug-ins Unity comme Parse, FMOD, UMP (Universal Media Player), ZFBrowser ou Embedded Browser utilisent des threads natifs.Several Unity plugins like Parse, FMOD, UMP (Universal Media Player), ZFBrowser or Embedded Browser are using native threads. Un problème se pose quand un plug-in finit par attacher un thread natif au runtime, ce qui aboutit ensuite à des appels bloquants pour le système d’exploitation.It’s an issue when a plugin ends up attaching a native thread to the runtime, which then does blocking calls to the OS. Cela signifie qu’Unity ne peut pas interrompre ce thread pour le débogueur (ou le rechargement de domaine) et se bloque.This means Unity can't interrupt that thread for the debugger (or domain reload) and hang.

Pour FMOD, il existe une solution, vous pouvez passer l’indicateur d’initialisation FMOD_STUDIO_INIT_SYNCHRONOUS_UPDATE pour désactiver le traitement asynchrone et effectuer tout le traitement sur le 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.

Projet incompatible dans Visual StudioIncompatible project in Visual Studio

Tout d’abord, vérifiez que Visual Studio est configuré comme éditeur de script externe dans Unity (Edition/Préférences/Outils externes).First, check that Visual Studio is set as your external script editor in Unity (Edit/Preferences/External Tools). Vérifiez ensuite que le plug-in Visual Studio est installé dans Unity (Aide/À propos de doit afficher un message comme Microsoft Visual Studio Tools pour Unity est activé en bas).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). Vérifiez ensuite que l’extension est correctement installée dans Visual Studio (Aide/À propos de).Then check that the extension is properly installed in Visual Studio (Help/About).

Problèmes de référence d’assemblyAssembly reference issues

Si votre projet est complexe côté référence ou si vous souhaitez mieux contrôler cette étape de génération, vous pouvez utiliser notre API pour manipuler le contenu du projet ou de la solution généré.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. Vous pouvez également utiliser des fichiers réponse dans votre projet Unity et nous les traiterons.You can also use response files in your Unity project and we'll process them.

Points d’arrêt avec un avertissementBreakpoints with a warning

Si Visual Studio ne parvient pas à trouver un emplacement source pour un point d’arrêt spécifique, un avertissement s’affiche autour de votre point d’arrêt.If Visual Studio is unable to find a source location for a specific breakpoint you will see a warning around your breakpoint. Vérifiez que le comportement que vous utilisez est correctement chargé/utilisé dans la scène Unity actuelle.Check that the behaviour you are using is properly loaded/used in the current Unity scene.

Points d’arrêt non atteintsBreakpoints not hit

Vérifiez que le comportement que vous utilisez est correctement chargé/utilisé dans la scène Unity actuelle.Check that the behaviour you are using is properly loaded/used in the current Unity scene. Quittez à la fois Visual Studio et Unity, puis supprimez tous les fichiers générés (.csproj, *.sln) et l’intégralité du dossier de bibliothèque.Quit both Visual Studio and Unity then delete all generated files (.csproj, *.sln) and the whole Library folder.

Impossible de s’attacherUnable to attach

  • Essayez de désactiver temporairement votre antivirus ou créez des règles d’exclusion pour VS et Unity.Try to temporarily disable your antivirus or create exclusion rules for both VS and Unity.
  • Essayez de désactiver temporairement votre pare-feu ou créez des règles d’autorisation de mise en réseau TCP/UDP entre VS et Unity.Try to temporarily disable your firewall or create rules for allowing TCP/UDP networking between VS and Unity.
  • Comme nous avons déterminé que des programmes comme TeamViewer interfèrent avec la détection de processus, vous pouvez peut-être essayer d’arrêter temporairement tout logiciel supplémentaire pour voir si cela change quelque chose.We identified that programs like Team Viewer are interfering with process detection; perhaps you can try to stop temporarily any extra software to see if it changes something.
  • Ne renommez pas l’exécutable Unity principal, car VSTU surveille uniquement les processus « Unity.exe ».Do not rename the main Unity executable, as VSTU is only monitoring "Unity.exe" processes.

Impossible de déboguer les lecteurs AndroidUnable to debug Android players

Nous utilisons la multidiffusion pour la détection de lecteur (qui est le mécanisme par défaut utilisé par Unity), mais nous utilisons par la suite une connexion TCP standard pour attacher le débogueur.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. La phase de détection représente le principal problème des appareils Android.The detection phase is the main issue for Android devices.

USB est extrêmement rapide pour le débogage, mais non compatible avec le mécanisme de détection de lecteur Unity.USB is super-fast for debugging, but not compatible with the Unity player discovery mechanism. Wi-Fi est plus polyvalent, mais très lent comparé à USB en raison de la latence.Wifi is more versatile but super slow compared to USB because of latency. Nous avons constaté un manque de prise en charge de multidiffusion appropriée pour certains routeurs ou appareils (les séries Nexus sont bien connues pour cela).We saw a lack of proper multicast support for some routers or devices (Nexus series are well known for this).

Vous pouvez essayer la procédure suivante en utilisant USB pour afficher les ports ouverts sur l’appareil connecté (avec le lecteur opérationnel pour pouvoir voir le port de débogage, toujours sous la forme 56xxx) :You could try the following using USB to see opened ports on the connected device (with the player up and running so that you can see the debugging port, always in the form 56xxx):

adb shell netstat

Transférez le port sur le PC local :Forward the port to the local pc:

adb forward tcp:56xxx tcp:56xxx

Connectez ensuite VSTU à l’aide du port transféré 127.0.0.1:56xxx.Then, connect VSTU using the forwarded port 127.0.0.1:56xxx.

Migration de UnityVS vers Visual Studio Tools pour UnityMigrating from UnityVS to Visual Studio Tools for Unity

Si vous procédez à une migration à partir de UnityVS vers Visual Studio Tools pour Unity, vous devez générer de nouvelles solutions Visual Studio pour vos projets Unity.If you're migrating from UnityVS to Visual Studio Tools for Unity, you'll need to generate new Visual Studio solutions for your Unity projects.

Pour migrer votre projet Unity de UnityVS 1.8 vers Visual Studio Tools pour Unity 1.9To migrate your Unity project from UnityVS 1.8 to Visual Studio Tools for Unity 1.9
  1. Supprimez les anciens fichiers solution et projet de votre projet Unity.Delete the old solution and project files from your Unity project. Dans le répertoire racine de votre projet Unity, recherchez les fichiers Visual Studio .sln et *.proj, puis supprimez-les.In the root directory of your Unity project, locate the Visual Studio .sln and .*proj files and delete them all.

  2. Importez le package Visual Studio Tools pour Unity dans votre projet Unity.Import the Visual Studio Tools for Unity package into your Unity project. Pour plus d'informations sur l'importation du package VSTU, consultez Configurer Visual Studio Tools pour Unity dans la page Prise en main .For information on how to import the VSTU package, see Configure Visual Studio Tools for Unity on the Getting Started page.

  3. Générez les nouveaux fichiers solution et projet.Generate the new solution and project files. Si vous souhaitez les générer maintenant, dans l'éditeur Unity, dans le menu principal, choisissez Visual Studio Tools, Générer les fichiers projet.If you want to generate them now, in the Unity Editor, on the main menu, choose Visual Studio Tools, Generate Project Files. Sinon, vous pouvez ignorer cette étape si vous le souhaitez. Visual Studio Tools pour Unity génère les nouveaux fichiers automatiquement lorsque vous choisissez Visual Studio Tools, Ouvrir dans Visual Studio.Otherwise, you can skip this step if you want; Visual Studio Tools for Unity will generate the new files automatically when you choose Visual Studio Tools, Open in Visual Studio.

Dans Windows, Visual Studio vous demande de télécharger la version cible de .Net Framework pour UnityOn Windows, Visual Studio asks to download the Unity target framework

Visual Studio Tools pour Unity a besoin de .Net Framework 3.5, qui n’est pas installé par défaut sur Windows 8 ni 10.Visual Studio Tools for Unity requires the .net framework 3.5, which isn't installed by default on Windows 8 or 10. Pour résoudre ce problème, suivez les instructions de téléchargement et d’installation de .Net Framework 3.5.To fix this issue, follow the instructions to download and install the .net framework 3.5.

Problèmes connusKnown Issues

Il existe des problèmes connus dans Visual Studio Tools pour Unity qui résultent de la façon dont le débogueur interagit avec une version antérieure de Unity du compilateur C#.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. Nous nous efforçons de vous aider à résoudre ces problèmes, mais vous rencontrerez peut-être les problèmes suivants d’ici-là :We're working to help fix these problems, but you might experience the following issues in the meantime:

  • Lors du débogage, il arrive que Unity s'arrête.When debugging, Unity sometimes crashes.

  • Lors du débogage, il arrive que Unity se bloque.When debugging, Unity sometimes freezes.

  • L'exécution pas à pas et la reprise des méthodes ne fonctionnent parfois pas très bien, en particulier dans les itérateurs ou dans les instructions switch.Stepping into and out of methods sometimes behaves incorrectly, especially in iterators or within switch statements.

Signalement des erreursReporting Errors

Aidez-nous à améliorer la qualité de Visual Studio Tools for Unity en envoyant des rapports d'erreurs lorsque vous êtes confronté à un arrêt, un blocage ou autres erreurs.Please help us improve the quality of Visual Studio Tools for Unity by sending error reports when you experience crashing, freezes, or other errors. Ceci nous permet d'examiner et de résoudre les problèmes de Visual Studio Tools pour Unity.This helps us investigate and fix problems in Visual Studio Tools for Unity. Merci !Thank you!

Comment signaler une erreur lorsque Visual Studio se bloqueHow to report an error when Visual Studio freezes

Il a été établi que Visual Studio se bloque parfois lors du débogage avec Visual Studio Tools pour Unity, mais nous avons besoin de plus de données pour comprendre ce problème.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. Vous pouvez nous aider à enquêter sur le problème en suivant les étapes ci-dessous.You can help us investigate by following the steps below.

Pour signaler que Visual Studio se bloque pendant le débogage avec Visual Studio Tools pour UnityTo report that Visual Studio freezes while debugging with Visual Studio Tools for Unity

Sur Windows :On Windows:

  1. Ouvrez une nouvelle instance de Visual Studio.Open a new instance of Visual Studio.

  2. Ouvrez la boîte de dialogue Attacher au processus.Open the Attach to Process dialog. Dans la nouvelle instance de Visual Studio, dans le menu principal, choisissez Déboguer, Attacher au processus.In the new instance of Visual Studio, on the main menu, choose Debug, Attach to Process.

  3. Attachez le débogueur à l'instance figée de Visual Studio.Attach the debugger to the frozen instance of Visual Studio. Dans la boîte de dialogue Attacher au processus , sélectionnez l'instance figée de Visual Studio à partir de la table Processus disponibles , puis choisissez le bouton Attacher .In the Attach to Process dialog, select the frozen instance of Visual Studio from the Available Processes table, then choose the Attach button.

  4. Interrompez le débogueur.Pause the Debugger. Dans la nouvelle instance de Visual Studio, dans le menu principal, choisissez Déboguer, Interrompre tout ou appuyez simplement sur Ctrl+Alt+Pause.In the new instance of Visual Studio, on the main menu, choose Debug, Break All, or just press Ctrl+Alt+Break.

  5. Créez un vidage de thread.Create a thread-dump. Dans la fenêtre Commande, entrez la commande suivante et appuyez sur Entrée :In the Command window, enter the following command and press Enter:

    Debug.ListCallStack /AllThreads /ShowExternalCode
    

    Vous devrez peut-être afficher d'abord la fenêtre Commande .You might need to make the Command window visible first. Dans Visual Studio, dans le menu principal, choisissez Affichage, Autres fenêtres, Fenêtre Commande.In Visual Studio, on the main menu, choose View, Other Windows, Command Window.

Sur Mac :On Mac:

  1. Ouvrez un terminal et obtenez le PID de Visual Studio pour Mac :Open a terminal and get the PID of Visual Studio for Mac:

    ps aux | grep "[V]isual Studio.app"
    
  2. Lancez le débogueur lldb :Launch the lldb debugger:

    lldb
    
  3. Attachez à l’instance de Visual Studio pour Mac à l’aide du PID :Attach to the Visual Studio for Mac instance using the PID:

    process attach --pid THE_PID_OF_THE_VSFM_PROCESS
    
  4. Récupérez le StackTrace pour tous les threads :Retrieve the stacktrace for all the threads:

    bt all
    

Enfin, envoyez le vidage de thread à vstusp@microsoft.com, ainsi qu’une description de ce que vous faisiez quand Visual Studio s’est bloqué.Finally, send the thread-dump to vstusp@microsoft.com, along with a description of what you were doing when Visual Studio became frozen.