web-dev-qa-db-fra.com

Ajouter une référence est manquant dans Visual Studio 2017 lors de l'utilisation avec Unity 3D - Besoin de Npgsql.dll

J'ai installé Unity 2017 avec Visual Studio 2017. Je tente d'ajouter un DLL externe au projet Visual Studio via l'explorateur de solutions. Quand je clique avec le bouton droit sur Références, l’option "Ajouter une référence" est complètement absente!

J'essaie d'utiliser NpgSQL. D'où la nécessité d'ajouter npgsql.dll.

Quelqu'un peut-il donner de la lumière?

8
JamesHoux

Le Add Reference... est à un endroit différent dans ce cas.


Que faire dans l'Unity:

Créez un dossier nommé Plugins en tant qu'enfant de votre dossier Actifs. (Actifs\Plugins ...)

Ensuite, copiez votre DLL dans ce dossier de plugins. Vous pouvez le faire en utilisant l'Explorateur Windows ou en le faisant simplement glisser dans le dossier de l'éditeur Unity, comme indiqué:

 enter image description here


Choses à faire dans Visual Studio:

Cliquez sur Analyseurs dans votre projet comme indiqué ci-dessous, puis cliquez sur Projet dans votre menu, puis accédez à Ajouter une référence ...:

 enter image description here

Maintenant Parcourir à votre DLL:

 enter image description here

Et ... voilà:

 enter image description here

15
Brien Foss

Accepté la réponse de Brien (merci, Brien!).

J'ajoute ma propre réponse pertinente à Npgsql.dll, parce que c'est apparemment un problème commun sur Internet avec une documentation médiocre. Si vous venez de google sur Npgsql.dll, lisez ce qui suit:

Unity (pour une raison inconnue) est fourni avec son propre fichier npgsql.dll dans le dossier mono/2_0 de l'application. Certaines personnes ont signalé des conflits avec cela.

La plupart des versions de npgsql.dll ne fonctionnent pas actuellement avec Unity. Si vous tentez de les inclure dans les actifs de Unity, Unity générera une erreur de type. C'est ce qui m'a fait penser que je devais ajouter le fichier comme référence en C #. C'est pourquoi je suis venu ici et ai posé la question sur Ajouter une référence. Mais, avec Unity, c'était tout simplement faux de ma part.

Pour autant que je sache, Unity insiste sur la gestion de toutes les propriétés et références du projet. Les DLL gérées et non gérées doivent être ajoutées via des actifs Unity. Même les propriétés de projet Visual Studio ne peuvent pas être modifiées dans Visual Studio for Unity. Et si vous essayez d'éditer les fichiers .csproj (par exemple, pour désactiver les avertissements du compilateur), Unity écrasera complètement les fichiers .csproj lors du prochain chargement de votre projet Unity.

Toute personne ayant des problèmes pour que Npgsql.dll fonctionne dans Unity doit utiliser le flux de travail Unity approprié dans lequel vous déposez npgsql.dll dans les actifs Unity. Si vous obtenez des erreurs, il s'agit d'un conflit de version de npgsql.dll. Essayez d’autres versions de la DLL en premier.

Ce monsieur a fourni une construction spécifique à Unity pour résoudre un conflit d’espace de noms (Il suffit de tirer la dll du dossier bin sur le lien Github): Unity NPGSQL.DLL

Unity 2017 vous permet actuellement de passer à .NET 4.6 à titre expérimental. Certaines personnes ont déjà utilisé ce paramètre pour que les nouvelles versions de npgsql.dll fonctionnent correctement, mais elles affichent des résultats intermittents. Pour l'instant, j'ai résolu mon problème avec Unitynpgsql.dll. C'est une version plus ancienne, donc j'espère que je ne rencontrerai aucune des fonctionnalités dont elle a besoin et qu'elle ne prend pas en charge. Si oui, je vais probablement travailler avec eux.

Pour tous ceux qui essaient de faire fonctionner npgsql.dll dans Unity: ne désespérez pas, essayez simplement de résoudre les conflits de version. Voici également un autre fil de discussion récent à ce sujet: Problème de Barebones Master Server Npgsql.dll - Janvier 2018

2
JamesHoux