web-dev-qa-db-fra.com

Le nom de type ou d'espace de nom «MySQL» est introuvable VS2017

Vous essayez actuellement de créer une connexion à une base de données MySql. Quand j'ai ajouté

using MySql.Data; using MySql.Data.MySqlClient;

à ma classe, j'ai reçu le typique "Le type ou le nom de l'espace de noms ... n'a pas pu être trouvé". Une petite recherche m'a fait réaliser que je manquais le MySql.Data.dll.

J'ai utilisé la console Packet Manager pour installer MySql.Data:

PM> Install-Package MySql.Data

J'ai vérifié qu'il a été installé via Outils> Gestionnaire de packages NuGet> Gérer les packages NuGet pour les solutions, mais j'obtenais toujours l'erreur de génération.

À ce stade, je me suis dit, puisque le PM a téléchargé le .dll, je vais simplement le référencer manuellement via Références> Ajouter une référence> Parcourir> Sélectionner MySql.Data.dll.

Génial!! Le squiggly rouge est parti sur mon using et intellisense a commencé à travailler pour les classes à l'intérieur de l'espace de noms MySql.Data:

enter image description here

Avance rapide de 10 minutes, je termine d'écrire ma classe de test et je clique sur Build et l'erreur revient:

enter image description here

Donc, en résumé, l'utilisation de PM pour installer MySql.Data ne m'a pas donné où. L'ajout manuel de la référence de MySql.Data.dll a permis à mon intellisense de reconnaître l'espace de noms et les classes, mais en ce qui concerne bâtiment, je reçois toujours l'erreur.

Assez perplexe. Quelqu'un a vu ça?

7
Flippi

Résolu ce problème! Il s'avère que le plus récent MySql.Data.dll est construit à partir de .Net Framework 4.5.2, alors que mon projet utilisait .Net Framework 3.5 Client Profile.

Changer le cadre de mon projet en 4.5.2 a résolu le problème. Il est assez étrange que VS ne donne pas un meilleur message d'erreur.

Pour modifier le cadre de votre projet, cliquez avec le bouton droit sur votre projet (pas la solution), sélectionnez Propriétés -> Application -> Cadre cible. Le cadre cible est une liste déroulante sur cette page.

Je suis arrivé à cette réalisation grâce à une autre question stackoverflower: Espace de noms non reconnu (même s'il est là)

11
Flippi

Dans cette situation, les fichiers dll MySQL sont très nouveaux. Vous pouvez télécharger des fichiers dll plus anciens et les inclure dans votre projet. Je préfère cette version. Cela fonctionne pour moi MySql.Data.DLL

Vous avez téléchargé le fichier .dll Vous allez simplement le référencer manuellement via Références> Ajouter une référence> Parcourir> Sélectionner MySql.Data.dll

0
Bahodir