2011-05-19 76 views
0

我以前安装了早期版本的SQLite(从http://sqlite.phxsoftware.com),现在用最新的(从http://sqlite.org推荐)代替它。我能够在2010年的“服务器资源管理器”中看到旧版本的数据提供程序,并且缺少新版本。System.Data.SQLite数据提供程序缺失

我使用安装程序作为管理员,并选择安装程序集GAC。安装完成后,我在我的machine.config中看到,不再有SQLite的条目,而且之前也有。我为新版本插入一个新的,但它没有帮助。

手插入项:

<DbProviderFactories> 
    <add name="SQLite Data Provider" invariant="System.Data.SQLite" 
     description=".Net Framework Data Provider for SQLite" 
     type="System.Data.SQLite.SQLiteFactory, System.Data.SQLite, Version=1.0.72.0, 
     Culture=neutral, PublicKeyToken=db937bc2d44ff139" /> 
    <!-- other entries here --> 
</DbProviderFactories> 

现在我有点卡住,而不是一定要尝试下一步是什么或找出是什么这两个版本之间的安装之间的差异。这可能是一个很大的差异,因为不同的开发人员现在正在维护.Net。

+0

标记为建议的位置? – abatishchev 2011-05-19 14:11:38

+0

你的意思是为什么推荐sqlite.org?他们现在正在为.Net维护SQLite二进制文件,所以这就是我使用它的原因,但我不记得我在哪里推荐它。我想使用最新的,所以我可以使用实体框架与SQLite – jlafay 2011-05-19 14:19:11

回答

2

SQLite在Windows后面可能会出现如此巨大的痛苦,它甚至不好笑。我不能说我曾专门处理过这个问题,但我已经处理了SQLite资源在GAC中未被正确识别的问题。在确定SQL Server 2008 Express Edition将安装SQLite实用程序以及默认SQL实例和其他所有内容以便Microsoft产品随时提取它的方式之前,我已经损失了整整2天的时间。我已经在我的机器上安装了SQL Server 2008 Professional,并且安装快速实例并没有扰乱我的配置。

我意识到这完全是一种解决方法,但从长远来看,最好的选择是将dll引用移动到所需项目中的/ Binaries /文件夹,并且只使用GAC for Microsoft程序集。很显然,大多数第三方都不知道如何正确使用GAC(无论这是他们的错,还是微软的问题,这是我留给哲学家的一个问题),所以除非你想花大量时间来学习它的怪癖,你最好使用Binaries文件夹。

+0

我可以添加一个二进制文件夹,但你知道如果它加载SQLite作为服务器资源管理器中的数据提供者? – jlafay 2011-05-19 14:23:59

+0

诚实的回答是“我认为它确实存在,但我的记忆很朦胧。”大约一年前,我处理了这个问题,当时我们并没有真正处理服务器资源管理器,公司已经推出了自己的数据访问层来处理所有这些。我似乎回忆起自己说,它正在以这种方式更好地整合,但我对这些细节是什么进行了粗略的描述。对不起,我不能更强调。 – tmesser 2011-05-19 14:41:16

+1

更新:我最终放弃了这个项目的SQLite,因为你对后方巨大的痛苦是正确的。我能够用SQL compact保存数据。无论如何感谢您的帮助。 – jlafay 2011-05-23 20:44:57

相关问题