2010-04-19 6 views
3

J'ai suivi les instructions de la documentation:Comment ajouter SQLite (SQLite.NET) à mon projet C#

Scénario 1: Version indépendante (ne pas utiliser le Global Assembly Cache)

Cette méthode vous permet de supprimer toute nouvelle version de System.Data.SQLite.DLL dans le dossier de votre application et d'utiliser sans aucune modification de code ou recompilation. Ajoutez le code suivant à votre fichier app.config:

<configuration> 
    <system.data> 
    <DbProviderFactories> 
     <remove invariant="System.Data.SQLite"/> 
     <add name="SQLite Data Provider" invariant="System.Data.SQLite" 
      description=".Net Framework Data Provider for SQLite"   type="System.Data.SQLite.SQLiteFactory, System.Data.SQLite" /> 
    </DbProviderFactories> 
    </system.data> 
</configuration> 

Mon fichier app.config ressemble maintenant à ceci:

<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
    <configSections> 
     <sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" > 
      <section name="DataFeed.DataFeedSettings" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" /> 
     </sectionGroup> 
    </configSections> 
    <userSettings> 
     <DataFeed.DataFeedSettings> 
      <setting name="eodData" serializeAs="String"> 
       <value>False</value> 
      </setting> 
     </DataFeed.DataFeedSettings> 
    </userSettings> 
    <system.data> 
     <DbProviderFactories> 
     <remove invariant="System.Data.SQLite"/> 
     <add name="SQLite Data Provider" 
      invariant="System.Data.SQLite" 
      description=".Net Framework Data Provider for SQLite" 
      type="System.Data.SQLite.SQLiteFactory, System.Data.SQLite" /> 
     </DbProviderFactories> 
    </system.data> 
</configuration> 

Mon projet est appelé "DataFeed":

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Data.SQLite; //<-- Causes compiler error 

namespace DataFeed 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
     } 
    } 
} 

L'erreur que je reçois est:

\ dev \ DataFeed \ Program.cs (5,19). erreur CS0234: Le type ou espace de noms nom 'SQLite' n'existe pas dans l'espace de noms 'System.Data' (êtes-vous manque un assemblage référence?)

Je suis préfère ne pas utiliser le GAC donc je simplement laissé tomber le System.Data.SQLite.dll dans mon dossier .\dev\DataFeed\. Je pensais que tout ce que je devais faire est d'ajouter la DLL au dossier du projet tel qu'il était mentionné dans la documentation, mais je ne peux pas utiliser la bibliothèque. Des conseils sur la façon de réellement faire ce travail?

Répondre

3

Vous avez supprimé la DLL dans votre dossier .\Dev\DataFeed - et avez-vous ajouté une référence à cette DLL à votre projet? L'erreur que vous obtenez semble indiquer que vous n'avez pas de référence définie pour cette DLL - cela ne se produira pas tout seul, vous devez ajouter manuellement une référence à une DLL externe si vous voulez utiliser des éléments de celle-ci.

+0

Doh! LOL, je FAIL! Merci pour l'aide ... ça marche maintenant! – Kiril

+0

@Lirik: parfois, ce sont les choses simples qui se mettent en travers de votre chemin et vous ne pouvez pas le voir vous-même :-) Été là, expérimenté que .... –

+0

Je suppose que cela arrive, surtout à 1:00 du matin :) ... le cerveau commence à penser au sommeil et je lui demande toujours de réfléchir au développement. – Kiril

Questions connexes