web-dev-qa-db-fra.com

La complétion automatique ne fonctionne pas dans Visual studio

J'ai un petit problème avec les scripts. Quand j'écris des scripts C # pour Unity avec Visual studio, il semble que je travaille dans le bloc-notes, il n'y a pas de autocompletion (correct?) Et je dois l'écrire très lentement. 

S'il vous plaît, regardez la vidéo. Au début est la situation normale (du tutoriel), la deuxième partie montre mon problème. 

Vidéo avec problème

Par exemple, la classe transform n'affiche pas de suggestion ou de saisie semi-automatique.

Image avec problème:

 enter image description here

Version Unity: 5.5.2f1
Studio visuel 2015
Visual Studio Tools pour Unity est installé

54
CorbenDalas

Il n'y a pas de complétion automatique, car le script indique "Fichiers divers}" au lieu du nom du projet. Regardez l'image ci-dessous qui provient de la vidéo dans votre question:

 enter image description here

Le message "Fichiers divers}" peut se produire pour plusieurs raisons:

1. Cela peut arriver lorsque vous ouvrez votre fichier Unity C # à partir d'un autre dossier au lieu de l'ouvrir depuis Unity Editor.

2. Cela peut également se produire, car Unity est tombé en panne alors que Visual Studio est toujours ouvert, ce qui a corrompu certains fichiers.

3. Cela peut arriver parce qu'Unity a été fermé puis rouvert mais n'est plus connecté à Visual Studio. Lorsque Visual Studio est ouvert, vous obtenez "Fichiers divers _" et aucune complétion automatique.

4. Cela peut arriver lorsque Visual Studio Tools pour l'unité n'est pas installé.

5 .Lorsque vous créez un script à partir d'Unity, ouvrez-le rapidement avant qu'Unity ait fini de le traiter ou avant l'animation de l'élément animé icône.


La plupart du temps, le redémarrage de Unity et de Visual Studio devrait résoudre ce problème.

Je ne peux pas dire lequel cause le problème mais je couvrirai la solution la plus probable pour résoudre ce problème.

Fix Part 1:

1 .Téléchargez et installez Visual Studio Tools pour l'unité à partir de this link. Faites ceci alors que Unity et Visual Studio sont fermés.

2 .Dans Unity Editor, accédez à Éditer-> _ ​​Préférences... -> _ ​​Outils externes. Dans le menu déroulant éditeur de script externe, remplacez-le par Visual Studio 2015

 enter image description here


Fix Part 2:

Si les fichiers C # nouvellement créés apparaissent sous le nom Divers, suivez les instructions ci-dessous:

1 .Dans Visual Studio, accédez à Outils-> _ ​​Options ...-> _ ​​Outils pour Unity-> _ ​​Divers. Sous Afficher l'icône de la connectivité, définissez-le sur true puis redémarrez Visual Studio.

 enter image description here

2. Lorsque vous redémarrez, l'icône de connexion devrait maintenant être disponible dans Visual Studio. Cliquez dessus, puis choisissez l'instance d'Unity à laquelle vous connecter. L'icône 'x' rouge devrait maintenant se transformer en une icône en forme de coche brune. Désormais, lorsque vous créez un nouveau fichier C # dans Unity, il doit s’ouvrir sans indiquer Divers.

 enter image description here


Fix Part 3:

Toujours pas réparé?

Réimportez le projet, puis ouvrez le projet C #.

1. Fermez Visual Studio.

2 .Dans Unity, réimportez le projet en accédant à Actifs-> _ ​​Tout réimporter.

 enter image description here

3 .Maintenant, ouvrez le projet dans Visual Studio en accédant à Actifs-> _ ​​Ouvrir le projet C #. Cela rechargera le projet et résoudra les problèmes de fichier de solution possibles.

 enter image description here


Fix Part 4:

Toujours pas réparé?

Corrigez chaque fichier C # individuellement.

1 .Cliquez sur l'icône Afficher tous les fichiers.

 enter image description here

2. Sélectionnez le script qui ne se complète pas automatiquement, puis cliquez avec le bouton droit de la souris et sélectionnez Inclure dans le projet

 enter image description here


Fix Part 5:

Pas encore résolu?

Le crédit va à chrisvarnz pour cette solution particulière qui semble avoir fonctionné pour plusieurs personnes.

1 .Fermer Visual Studio

2. Allez dans le répertoire de votre projet et supprimez tous les fichiers Visual Studio générés.

Voici les extensions de fichiers à supprimer:

  • .csproj
  • .utilisateur
  • .sln

Exemple:

Supposons que le nom de votre projet s'appelle "Target Shoot", voici à quoi devraient ressembler les fichiers à supprimer:

  • Tir à la cible.csproj
  • Shoot.Editor.csproj cible
  • Cible Shoot.Editor.csproj.user
  • Cible Shoot.Player.csproj
  • Shoot.Player.csproj.user cible
  • Target Shoot.sln

Ne supprimez rien d'autre.

3. Double-cliquez à nouveau sur le script de Unity pour générer un nouveau fichier Visual Studio, puis ouvrez Visual Studio. Cela peut résoudre votre problème.


Fix Part 6:

Si ne fonctionne pas, vérifiez si vous rencontrez this error:

La tâche "GetReferenceNearestTargetFrameworkTask" est introuvable.

1 .Install Nuget PackageManager à partir de ici .

2 .Restart Visual Visual.

Voir this answer pour plus d’informations.

140
Programmer

J'ai trouvé un autre moyen de résoudre ce problème d'une manière plus pratique:

  1. Sélectionnez le fichier endommagé dans l'Explorateur de solutions.
  2. Ouvrez ses propriétés.
  3. Basculez le champ "Action de construction" de "Compiler" à "Aucun".
  4. Revenez ensuite sur "Compiler".

Cela mettra fin à la synchronisation entre Unity et Visual Studio.

La prochaine fois que Visual Studio rechargera le projet, il affichera un message d'avertissement ..__ Cliquez simplement sur "Supprimer".

14
Michaël Nguyen

Déchargez et rechargez le projet dans Visual Studio:

  • faites un clic droit sur votre projet dans Explorateur de solutions
  • sélectionnez Décharger le projet
  • sélectionnez Recharger le projet

Fixé!

J'ai trouvé cette solution la plus efficace (la plus facile), après avoir rencontré le problème plusieurs fois.

Source: https://alexdunn.org/2017/04/26/xamarin-tips-fixing-the-highlighting-drop-in-your-xamarin-Android-projects/

7
Xonatron
  1. Sélectionner un projet dans Visual Studio 
  2. Cliquez sur le bouton "Actualiser"

 enter image description here

4
GLeBaTi

Je rencontre les mêmes problèmes aujourd'hui avec Visual Studio 2017 15.4.5 avec Unity 2017.

J'ai pu résoudre le problème en faisant un clic droit sur le projet dans Visual Studio et en modifiant le cadre cible de 3,5 à 4,5.

J'espère que cela aidera quelqu'un d'autre dans un scénario similaire.

2
singleton

Deux options alternatives:

Fix 1

@singleton m'a dirigé dans cette direction. Au lieu de changer la cible dans Visual Studio, vous devez la changer dans Unity car le projet est généré automatiquement.

Commencez par supprimer les fichiers Visual Studio générés automatiquement: . csproj . utilisateur . sln

Ensuite, dans Unity, accédez à PlayerSettings et, sous "Autres paramètres", changez la "Version d'exécution de script" de Stable 3.5 à Experimental 4.6.

Cependant, cela n'a pas résolu le problème pour moi. 

Fix 2

J'ai remarqué que toutes les références au code lié à Unity étaient marquées d'un avertissement jaune. Vérifiez vos journaux d'erreurs et voyez si c'est le cas. En particulier, voyez si l'erreur suivante apparaît: getreferenceNearestTargetframeworkTask 

Si tel est le cas, essayez: Relancez Visual Studio Installer.

Sur les outils de construction 2017, cliquez sur Modifier,

Assurez-vous que les "cibles de nuget et tâches de construction" sont cochées. Cela devrait être coché si vous cliquez sur le développement de la plate-forme Windows universelle. 

2
ickydime

j'ai trouvé ma solution en créant le fichier .cs à partir de Visual Studio au lieu de l'éditeur Unity.

  • clic droit sur le dossier du projet dans l'explorateur de solutions
  • ajouter> nouvel article
  • tapez "unit" dans le champ de recherche en haut à droite
  • sélectionnez "CSharp MonoBehaviour"
  • nommez votre script en bas et cliquez sur Ajouter
1

Essayez d’appuyer sur Ctrl + Alt + Space (qui bascule entre les modes suggestion et achèvement standard)

1
maitrunghieuit
  • Accédez à Options dans le menu Outils, puis sélectionnez Documents dans le nœud Environnement. (Si Documents ne figure pas dans la liste, sélectionnez Afficher tous les paramètres dans la boîte de dialogue Options.)
  • Cochez "Fichiers divers dans l'Explorateur de solutions" et cliquez sur OK. (Cette option affiche le nœud "Fichiers divers" dans l'Explorateur de solutions. Les fichiers divers sont des fichiers qui ne sont pas associés à un projet ni à une solution, mais peuvent apparaître dans l'Explorateur de solutions pour plus de commodité si vous cochez cette option.)
  • Localisez votre fichier dans l'Explorateur de solutions sous "Fichiers divers". Puis faites glisser votre fichier là où il devrait appartenir et le tour est joué! Cela copiera le fichier à l'endroit où vous le déposez. Vous pouvez maintenant supprimer en toute sécurité l'ancien fichier du dossier Fichiers divers si vous le souhaitez.

Crédits: https://stackoverflow.com/a/47662523/10471480


Dans le cas où le dossier Scripts n'est pas visible:

  • Cliquez sur "Afficher tous les fichiers" dans l'Explorateur de solutions.
  • Recherchez le dossier Scripts.
  • Clic droit sur Scripts et sélectionnez "Inclure dans le projet"
0
Mangaldeep Pannu

Mon autocomplétion ne fonctionnait pas non plus, car Visual Studio Tools pour Unity n’était pas installé. Donc, après l’installation, supprimez les fichiers Visual Studio générés automatiquement. D'autres ont dit que vous ouvrez de nouveau le fichier et que le problème est résolu, mais ce n'est pas le cas.

L'astuce est la suivante: au lieu de cliquer normalement deux fois sur le fichier, vous devez ouvrir le fichier C # à partir de Unity en cliquant avec le bouton droit de la souris, puis sur "Ouvrir le projet C #".

0

Essaye ça,

Dans Unity Editor Sélectionnez Menu, Cliquez sur Edition -> Préférences -> Outils externes -> Editeur de script externe. Définissez-le sur Visual Studio (votre version installée de VS).

Maintenant, dans la barre de menus, allez dans Edition -> Paramètres du projet -> Paramètres du lecteur -> Autres paramètres -> Sous Configuration -> Vérifier le niveau de compatibilité de l'API -> Changez-le en votre version .Net installée. Dans mon cas, je l'ai défini sur .Net 4.x

Maintenant, si Visual Studio est en cours d'exécution, accédez à Visual Studio, il vous sera demandé de recharger le projet. Rechargez le projet. Vérifiez si cela fonctionne, sinon fermez Visual Studio. Ouvrez maintenant le fichier cs à partir de Unity Editor et cela devrait maintenant fonctionner.

0
Juned Khan Momin

J'ai essayé toutes ces solutions, mais j'ai finalement découvert que je devais cliquer avec le bouton droit de la souris sur la solution dans l'Explorateur de solutions, ajouter des éléments existants et rechercher le fichier d'assemblage C # dans l'explorateur de Windows. Il semble y avoir un tas de problèmes différents qui vous donnent cette erreur, c'est probablement la solution la plus simple. Si vous double-cliquez sur votre script à partir de l'unité, il ne semble pas traîner l'Assemblée.

0
Kevin Martin

Ce qui a fonctionné, c’est que j’ai copié tout le code de la classe cassée et que j’ai supprimé ce fichier ..__ Ensuite, j’ai ouvert un fichier vide et collé.

Résultat : les points forts de la syntaxe sont revenus!

0
Eray Alparslan

Avant de redémarrer et/ou de réinstaller VS, commencez par ouvrir un autre de vos projets pour voir si Intellisence fonctionne. Dans ce cas, le problème réside probablement dans votre projet actuel. Premièrement, la victime la plus probable serait les paquets NUGET avec des mises à jour en attente. Pour résoudre ce problème,

  1. Clic droit sur les références
  2. Passez à la gestion des packages NUGET sous les packages NUGET
  3. procéder aux mises à jour Installer les mises à jour et revérifier Intellisence
0
David.Ambuka

J'ai résolu d'installer la même version de .NET sur WIN que celle configurée dans mon projet Unity. (Paramètres du joueur)

0
Bruno Araujo

Pour Windows ou macOS:

Téléchargez/installez le Visual Studio IDE (avec Unity Tools)

Lors de l'installation, assurez-vous d'inclure l'installation de 

Développement de jeux avec Unity

 enter image description here

Puis, en utilisant Unity (vous pouvez double-cliquer sur l’un de vos fichiers C #), ouvrez un nouveau projet C # et Visual Studio IDE devrait s’ouvrir avec votre nouvelle structure de projet.

 enter image description here

À partir de là, vous devriez pouvoir voir ce que vous recherchez.

Par exemple:

 enter image description here

 enter image description here

Pour Linux (suggestion):

Essayez Monodevelop - Informations complémentaires , il fournit des indications sur la complétion du code.

0
Brien Foss

N'oubliez pas que si vous utilisez l'outil ReSharper, il remplacera IntelliSense et affichera le sien. Pour changer cela, sur VS, allez dans Extensions -> ReSharper -> Options -> IntelliSense -> Général, puis choisissez Visual Studio et non pas ReSharper.

0
user11897507

Aucune des solutions ci-dessus n'a fonctionné pour moi. Cependant, j'ai ouvert le fichier ProjectName.CSPROJ et ajouté manuellement le nouveau fichier. Cela a fonctionné comme un charme.

0
Sebinjude Shaolin

Le problème que j'ai rencontré était que le projet C # visait un .NET Framework différent (4.7.2), alors que le projet Unity avait une cible différente (.NET 3.5).

J'ai corrigé cela en changeant la cible dans Unity as-

Fichier -> Paramètres de construction -> Paramètres du lecteur -> Autres paramètres -> API Niveau de compatibilité: réglez-le sur la version .NET que vous avez déjà installé (vérifiez votre version .NET ici ). Dans mon cas, c'était 4.x

Après cela, Visual Studio a parfaitement fonctionné et la correction automatique a également été corrigée.

0
rkbroach

Dans mon cas, la version .net correcte n’était pas installée sur mon PC. J'installe le .net 3.5 sur mon ordinateur et cela a fonctionné pour moi. 

0
Habibur Rahman Ovie