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.
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
Vous devez vous connecter pour publier un commentaire.
Essayer quelque chose comme cela (je n'ai pas vérifier toutes les versions possibles et/ou configuration, mais il travaille actuellement sur mon Vista x64 pour MySql 5,5... et .net connecteur 6.4.3.0 - à l'aide de mysql.data.dll pour v4 .net/mono télécharger).
Assurez-vous que le référencés mysql.data.dll l'assemblée ci-dessous dans votre répertoire courant.
Aucun inconvénient à cette méthode autre que vous aurez à dupliquer mysql.data.dll pour toutes les applications qui en ont besoin. Donc, si vous en avez un, alors c'est parfait. Dans mon cas, il y a plusieurs donc j'ai fini par mettre mysql assemblées dans le GAC et la modification de la machine.config est dans tous les bons endroits, je pouvais DbProviderFactories.GetFactory("chaîne ici j'ai donné dans les configs") pour obtenir de l'usine et à partir de là. Je voudrais juste utiliser ces dll .net/mono de la distribution, ayant pour définir manuellement les choses en place.
OriginalL'auteur Sergei Z
Ce page ne pas aller dans les détails .NET Framework de dépendance, mais je soupçonne que le Mysql connector pourrait être dépendants d'une version ultérieure de la .NET framework.
En d'autres termes, votre application utilise le Framework 2, mais quelle version est la base de l'utilisation du connecteur?
6.3.* est compatible avec ADO.NET la version 2.x+, .NET Framework version 2.x+, 4.x+ pour VS 2010 de soutien et de MySQL Server version 5.0, 5.1, 5.4, 5.5, comme par site web de mysql
Je me réfère le lien dev.mysql.com/doc/refman/5.0/en/connector-net-versions.html
Il indique clairement que le connecteur de travail .net framework 2.0. Nous avons même essayé la même chose avec la version 6.0.3 du connecteur mais ça donne le même message d'erreur
je vais avoir des problèmes similaires à l'instant. pour une raison quelconque, le v2.0 assemblées de référence v4.0 versions de Système.Xaml et les autres. je soupçonne que certains étrange et mal GAC magie est à l'œuvre, la solution de contournement consiste à compiler le .Net connecteur de la source
OriginalL'auteur msergeant
Cette entrée:
... doit être écrit dans votre machine.config.
Je crois que le chemin d'accès par défaut doit être quelque chose comme:
Mise à jour
Vous devriez être en mesure d'inclure MySQL .Net/programme d'installation du Connecteur dans le cadre de votre package d'installation. L'entrée dans la machine.la config est requis pour les mêmes raisons que l'information est nécessaire dans un site web.config.
Pourquoi cette entrée est nécessaire, en premier lieu, ma question aurait
OriginalL'auteur IAbstract