Bonjour,

Le titre n'étant pas clair, je vais détailler mon problème ici :

J'ai une fonction, GetFactory qui retourne une instance Factory suivant le type de source de données :
Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
 
private DbProviderFactory GetFactory()
{
    // Selon le moteur SQL utilisé
    switch (this.engineType)
    {
        //SQLite
        case SQLEngineType.SQLite: return System.Data.SQLite.SQLiteFactory.Instance;
 
        //MySQL
        case SQLEngineType.MySQL: return MySql.Data.MySqlClient.MySqlClientFactory.Instance;
 
        //Oracle
        case SQLEngineType.Oracle: return Oracle.DataAccess.Client.OracleClientFactory.Instance;
 
        //SQLServer
        case SQLEngineType.SQLServer: return System.Data.SqlClient.SqlClientFactory.Instance;
 
        //OleDB
        case SQLEngineType.Oledb: return System.Data.OleDb.OleDbFactory.Instance;
 
        //Odbc
        case SQLEngineType.Odbc: return System.Data.Odbc.OdbcFactory.Instance;
 
        // Un autre
        default: return null;
 
    }
}

Mon problème est que, dès que je veux une factory, par exemple celle de MySql, il faut obligatoirement que les dll des autres factory (Oracle.DataAccess, System.Data.SQLite, etc...) soit présente sous peine d'avoir une erreur
"System.IO.FileNotFound : librairie non trouvée".
Et quand on sait qu'on n'utilisera que MySql dans le projet, ça devient embêtant de devoir se traîner les autres dll.

Quelqu'un connaitrait-il un moyen d'éviter ce désagrément ?

Merci !