Sqlite - Problèmes multiple

Signaler
Messages postés
4
Date d'inscription
jeudi 2 janvier 2003
Statut
Membre
Dernière intervention
15 février 2012
-
Bonjour à tous,

J'ai 2 soucis en travaillant avec Sqlite, mais à mon avis ces soucis pourraient se produire avec d'autre dll.

J'essaie d'utiliser Sqlite avec la classe "System.Data.Common.DbConnection" ce qui me permet de créer une classe qui peut se connecter à plusieurs type de base de données (donc pour le moment j'ai Access, SqlServer, Oracle et Sqlite).

Je développe avec Visual Studio 2010.

J'ai donc ajouté les dlls "System.data.SQLite" et "System.data.Sqlite.link" à mon projet.

J'ai obtenu 2 erreurs :

- "L'assembly en mode mixte est créé avec la version 'v2.0.50727' du runtime et ne peut être chargé dans le runtime 4.0 sans d'autres informations de configuration". J'ai corrigé ce problème en rajoutant "useLegacyV2RuntimeActivationPolicy="true"" dans mon app.exe.config, ce qui me donne :

<startup useLegacyV2RuntimeActivationPolicy="true">
  <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
</startup>


-> Ok ca marche.

- En déployant l'application sur un poste sans environnement de développement, j'ai obtenu le message d'erreur "Le fournisseur de données .Net Framework demandé est introuvable. Il n'est peut-être pas installé". Les 2 Dlls de Sqlite sont bien dans le même répertoire que l'exe de mon application et bien référencées dans le projet. Après des recherches sur le net j'ai trouvé que je devais rajouter le code suivant également dans le fichier app.exe.config :

  <DbProviderFactories>
    <remove invariant="System.Data.SQLite"/>
    
  </DbProviderFactories> 


-> Ok ca marche. Tout ceci me donne un fichier app.exe.config :

<?xml version="1.0"?>
<configuration>
<startup useLegacyV2RuntimeActivationPolicy="true">
  <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
</startup>
<system.data>
   <DbProviderFactories>
    <remove invariant="System.Data.SQLite"/>
    
  </DbProviderFactories> 
</system.data>
</configuration>


Maintenant voici le problème pour lequel je ne trouve pas de solution : Je voudrais créer une librairie qui contiendrait entre autre cette classe. Mais même si j'ai trouvé qu'il y avait moyen d'avoir un fichier dllName.dll.config, je n'arrive pas à y mettre ce qui précède pour que cela fonctionne. La seule solution que j'ai trouvé pour le moment est de laisser les lignes dans les app.exe.config des programmes qui vont utiliser cette Dll. Ce qui m’embête un peu car je n'ai pas envie de maintenir tous les fichiers app.exe.config de toute les applications qui l'utiliseront.
Je pense que je pourrais passer par le fichier machine.config, mais cela me parait lourd d'aller le modifier sur chaque poste client.

Quelqu'un aurait il la solution ?