lundi 19 novembre 2007

Faire fonctionner une base de données Mysql avec Mono pour ASP.NET et C#

Si vous êtes tombés sur cette page c'est que comme moi vous avez passé des heures a chercher pourquoi avec monodevelop vous obtenez les erreurs suivantes :


The type or namespace name `MySql.Data' could not be found. Are you missing a using directive or an assembly reference?(CS0246)
The type or namespace name `MySql' could not be found. Are you missing a using directive or an assembly reference?(CS0246)
The type or namespace name `Data.MySqlClient' could not be found. Are you missing a using directive or an assembly reference?(CS0246)


Après quelques recherches, je suis tombé sur un site en espagnol qui explique très bien comment se sortir de ce problème. Ce qu'il ne disent pas par contre, c'est qu'il ne faut surtout pas télécharger le connecteur 5.0 mais plutot le 1.0 disponible ici
Prenez la version Binaries, dezipez la et copiez le fichier MySql.Data.dll qui se trouve dans /mysql-connector-net-1.0.10.1-noinstall/bin dans le répertoire de votre projet.
Allez dans ce répetoire et faites dans le terminal la commandes suivantes :
gacutil -i MySql.Data.dll
Vous devriez obtenir :
MySql.Data installed into the gac (/usr/lib/mono/gac)

Maintenant retournez dans votre projet et faites un clic droit sur le dossier références>Editer les références>Onglet Packages
Ajoutez System.data (en le cochant ).
Allez à l'onglet Bibliothèque.net et parcourez vos dossiers jusqu'au dossier ou vous avez copié Mysql.Data.dll et ajoutez cette référence en clickant sur add.

Pourquoi le connecteur 1.0 et pas le 5.0 ? parce que vous n'avez pas envie d'avoir cette erreur et comme moi passer 2 heures a chercher en vain.
The type or namespace name 'MySqlConnection' could not be found (are you missing a using directive or an assembly reference?)

Vous devriez voir Mysql.Data.dll apparaitre dans vos références, vous pouvez alors cliquer (droite) dessus et sélectionner copier la référence localement(au cas ou).

Inspiré de cet article

Rappel du contexte
Langage : Site en ASP.net avec C Sharp
IDE: Monodevelop
Base de données : Mysql
OS: ubuntu 7.04 Feisty

Aucun commentaire: