Comment se connecter à mysql utilisation de mysql connector via C# sans installer le connecteur

Nous avons une dot net 2.0 de C# produit qui utilise Mysql comme le stockage de données. Lorsque nous avons installé le connecteur mysql 6.3.6 sur l'XP/Win 7 de la machine, nous sommes en mesure de vous connecter à la base de données à partir du code C# sans aucun problème. Mais nous sommes confrontés à un problème lors de la connexion à la base de données mysql lorsque le connecteur mysql est pas installé sur la machine, mais est seulement présent dans le même répertoire que l'exécutable. Nous ne voulons pas installer le connecteur sur chaque machine, nous voulons le produit pour exécuter sur. Nous voulons que le connectory dll à être utilisé directement comme nous utilisons un 3ème partie de la dll (e.g logger) dans notre code.

Même quand on copie l'mysql.data.dll dans le même répertoire que l'exe est installé, il crée, mais ne pas se connecter à la base de données.

L'erreur donnée est

Incapable de trouver la demande .Net Framework Fournisseur De Données. Il ne peut pas être installé
Blockquote

Informations Techniques:

  • Mysql 5.0
  • C#
  • Dot Net framework 2.0
  • Mysql Connector 6.3.6 (le même problème se produit avec la version 6.0.3 de sql connecteur)
  • Win XP/Win 7

Lorsque nous sommes à l'aide de ASP.Net, nous pouvons spécifier la balise donnée ci-dessous dans le web.config, et nous pouvons nous connecter à la base mysql directement par mettre la dll dans le répertoire bin


<system.data>
  <DbProviderFactories>
    <add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=5.0.6.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
  </DbProviderFactories>
</system.data>

Pourquoi ne pouvons-nous pas faire la même chose en C# pour le Client-Serveur de l'application dans l'environnement de bureau.

Ne vous mettez la même configuration dans le app.config de votre application de bureau?
Nous n'avons pas mis la même configuration dans l'application.config. La balise DBProviderFactories semble invalide dans l'app.config
Cette question m'aurait évité des heures d'un couple de des maux de tête il y a un mois. Tous les .Net Connecteur d'installation (ce que je comprends), c'est d'ajouter le "Fournisseur de Données MySQL" entrée de la machine.config. Je n'ai pas utiliser le programme d'installation et simplement ajouté à l'entrée de ma config. J'ai été sur et en cours d'exécution à l'aide de l' .Net ProviderFactories.

OriginalL'auteur Kalpak | 2011-06-18