web-dev-qa-db-fra.com

Le fournisseur ADO.NET avec le nom invariant 'MySql.Data.MySqlClient' n'est pas enregistré dans le fichier de configuration de la machine ou de l'application.

J'ai une solution asp.net utilisant entity framework 6 to mysql server. 

maintenant je dois travailler sur cette solution sur une nouvelle machine,
mais j'ai quelques problèmes:
1) lors de la construction de la solution, l'erreur suivante apparaît: "Le fournisseur ADO.NET avec le nom invariant 'MySql.Data.MySqlClient' n'est pas enregistré dans le fichier de configuration de l'ordinateur ou de l'application". 

 error screenshot

App.config: 

<entityFramework>
  <providers>
    <provider invariantName="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity.EF6, Version=6.9.9.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d"></provider>
  </providers>
</entityFramework>
<system.data>
  <DbProviderFactories>
    <remove invariant="MySql.Data.MySqlClient" />
    <add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=6.9.9.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
  </DbProviderFactories>
</system.data>  

2) lors de l'ouverture du fichier model.edmx, un message s'affiche:
"Le concepteur de mode d'entité ne parvient pas à afficher le fichier demandé". 

 error screenshot

J'ai installé sur la machine: 

1) connecteur mysql/net 6.9.9
2) mysql pour visual studio 1.2.6
3) mysql connector odbc 5.3.6.

que puis-je faire?

13
Ariela

J'ai suivi la plupart des solutions suggérées sur Internet mais, malheureusement, tout a échoué. Le problème se produit car Visual Studio manque de connecteur MySql et je l'ai résolu en installant mysql-connector-net-7.0.4 ( https://downloads.mysql.com/archives/c-net/

9
iQalalwa

Les solutions ci-dessus ne fonctionnaient pas pour moi. Cependant, inspiré par cette réponse , j’ai pu résoudre ce problème en supprimant les informations de version sous la balise entityFramework dans mon fichier Web.config:

    <entityFramework>
      <defaultConnectionFactory
       type="MySql.Data.Entity.MySqlConnectionFactory, MySql.Data.Entity.EF6" />
      <providers>
        <provider invariantName="MySql.Data.MySqlClient"
         type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity.EF6, Version=6.9.9.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d">
        </provider>
      </providers>
    </entityFramework>

devient:

    <entityFramework>
      <defaultConnectionFactory
       type="MySql.Data.Entity.MySqlConnectionFactory, MySql.Data.Entity.EF6" />
      <providers>
        <provider invariantName="MySql.Data.MySqlClient"
         type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity.EF6">
        </provider>
      </providers>
    </entityFramework>

ETA: Comme indiqué dans ce suivi , il peut également être nécessaire de modifier manuellement la version de MySql.Data dans le fichier Web.config:

<dependentAssembly>
    <assemblyIdentity name="MySql.Data" culture="neutral" publicKeyToken="c5687fc88969c44d" />
    <bindingRedirect oldVersion="0.0.0.0-6.9.9.0" newVersion="6.9.9.0" />
</dependentAssembly>
3
alexanian

Afin de résoudre ce problème, en plus des modifications décrites dans ce message , j'ai également dû modifier manuellement la version de MySql.Data dans web.config comme suit:

<dependentAssembly>
    <assemblyIdentity name="MySql.Data" culture="neutral" publicKeyToken="c5687fc88969c44d" />
    <bindingRedirect oldVersion="0.0.0.0-6.9.9.0" newVersion="6.9.9.0" />
</dependentAssembly>
2
Chris Bremner

Supprimez l'ancienne référence de MySql.Data.Entity.EF6 de la liste de références. Réinstallez via le gestionnaire de paquets Nuget et cela fonctionnera /

1
Idan Shechter

Cela fonctionne pour moi avec la section suivante dans app.config:

<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" />
    </DbProviderFactories>
</system.data> 
0
Anson Woody