MySQL Connector 6.7.4 e Entity Framework 5 eccezioni

Ho scaricato MySQL Connector / Net 6.7.4 e MySQL per Visual Studio 1.0.2 , quindi ho seguito queste istruzioni per testarlo:

  1. Creare una connessione al database MySQL esistente.
  2. Creare un’applicazione console.
  3. Aggiungere il modello di dati di quadro ADO.NET dalla connessione al database esistente.
  4. Aggiungi codice Generazione articolo EF 5.x DbContext Generator , sostituendo i file .tt.
  5. Scrivi del codice che recupera i record dal database.

Eseguendo l’applicazione, ho ottenuto questa eccezione:

ConfigurationErrorsException : imansible trovare o caricare il provider di dati .Net Framework registrato.

Poi ho aggiunto riferimenti alle librerie MySql.Data e MySql.Data.Entity versione MySql.Data.Entity al mio progetto .NET 4.5. Ora quando eseguo l’applicazione, ottengo un’eccezione diversa:

FileLoadException : imansible caricare file o assembly ‘MySql.Data, versione = 6.6.5.0, culture = neutral, PublicKeyToken = c5687fc88969c44d’ o una delle sue dipendenze. La definizione manifest di assembly individuato non corrisponde al riferimento all’assembly. (Eccezione da HRESULT: 0x80131040)

Nota il numero di versione, che non è la versione di MySQL Connector che ho installato.

Come faccio a farlo funzionare correttamente?

Il trucco per risolvere questo è stato:

  1. Aggiungere riferimenti alle librerie MySql.Data e MySql.Data.Entity della versione corretta (6.7.4.0 per .NET 4.5, nel mio caso) al progetto.
  2. Modifica machine.config con il tuo editor eseguito come amministratore e sostituisci tutte le occorrenze di MySQL versione 6.6.5.0 con 6.6.5.0 .

Per il secondo passaggio, si noti che esistono più file machine.config , uno per ciascuna versione di framework (3.0, 3.5, 4.0) e architettura (32-bit, 64-bit). Si noti inoltre che il file machine.config per .NET 4.5 si trova nella cartella .NET 4.0. Puoi trovare i file machine.config in:

C: \ Windows \ Microsoft.NET \ Framework \\ Config

E:

C: \ Windows \ Microsoft.NET \ Config Framework64 \\

Se non ci sono riferimenti a MySQL nel file machine.config , potresti non aver installato MySQL per Visual Studio . O fai ciò, o aggiungi quanto segue al file app.config del tuo progetto:

      

Tuttavia, quando installate MySQL for Visual Studio e aggiungete lo snippet sopra al file app.config , otterrete questa eccezione:

ConfigurationErrorsException : colonna ‘InvariantName’ è vincasting per essere univoca. Il valore ‘MySql.Data.MySqlClient’ è già presente.

Non mi piace modificare machine.config. Basta aggiungere questo reindirizzamento a web.config:

         

L’utilizzo di questo dovrebbe interrompere l’eccezione menzionata da Virtlink:

       

Soprattutto notare la riga .

Scarica MYSQL 6.7.4.0 da QUI . Nota che il tuo problema specifico richiede 6.7.4.0 e NON altra versione!

Il collegamento diretto è questo .

Scarica e aggiungi i file nella cartella di riferimento della soluzione.

Questo probabilmente risolverebbe il tuo problema (lo ha fatto per me, e sì, so che questo può essere un problema molto fastidioso).

In bocca al lupo 🙂

Mi rendo conto che questo thread ha avuto una risposta nel 2013, ma ho appena riscontrato nuovamente questo problema. Nella mia situazione, ho recentemente installato l’aggiornamento di Windows 10 Anniversary. Non ho avuto un problema prima di questo.

In base alle risposte sopra, risulta che il mio file Machine.config è stato sovrascritto (presumo dall’aggiornamento).

Per me, una volta ripristinate le informazioni sull’assembly MySql nel file Machine.config, si è immediatamente riavviato.

In particolare, le sezioni “Runtime” e “DbProviderFactories” erano state cancellate e dovevano essere sostituite. Erano i seguenti (questi varieranno a seconda delle versioni degli assembly che si stanno utilizzando):

Sezione runtime:

                 

Sezione DbProviderFactories

    

Spero che questo aiuti chiunque altro a superare lo stesso problema.