Tenemos un producto C# basado en dot net 2.0 que usa Mysql como almacenamiento de datos. Cuando instalamos el conector mysql 6.3.6 en la máquina XP/Win 7, podemos conectarnos a la base de datos desde el código C# sin ningún problema. Pero nos enfrentamos a un problema al conectarnos a la base de datos mysql cuando el conector mysql no está realmente instalado en la máquina, pero solo está presente en el mismo directorio que el ejecutable. No deseamos instalar el conector en todas y cada una de las máquinas en las que queremos que se ejecute el producto. Queremos que el dll de conexión se use directamente ya que usamos cualquier dll de terceros (por ejemplo, registrador) en nuestro código.Cómo conectarse a mysql usando el conector mysql mediante C# sin instalar realmente el conector
Incluso cuando copiamos mysql.data.dll en el mismo directorio donde está instalado el exe, se compila pero no se conecta a la base de datos.
El error dado es
No se pudo encontrar el proveedor de datos de .NET Framework solicitado. No se puede instalar Blockquote
Información técnica:
- Mysql 5.0
- C#
- Dot Net marco 2.0
- Conector Mysql 6.3.6 (mismo problema ocurre con ver 6.0 .3 del conector sql)
- Win XP/Win 7
Cuando estamos utilizando ASP.Net, podemos especificar la etiqueta dada a continuación en el web.config, y que se puede conectar a la base de datos MySQL directamente poniendo la DLL en el directorio 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>
¿Por qué no podemos hacer lo mismo en C# para la aplicación Client Server en el entorno de escritorio?
Cualquier ayuda es realmente apreciada.
Kalpak
¿Pones la misma configuración en el 'app.config' de tu aplicación de escritorio? – Jon
No pusimos la misma configuración en la aplicación.config. La etiqueta DBProviderFactories parece no ser válida en app.config – Kalpak
Esta pregunta me habría ahorrado un par de dolores de cabeza hace un mes. Toda la instalación de .Net Connector (de lo que yo entiendo) es agregar la entrada "Proveedor de datos MySQL" a machine.config. No usé el instalador y simplemente agregué la entrada a mi configuración. Estaba apagado y funcionando con .Net ProviderFactories. – IAbstract