首页 新闻 会员 周边

关于EF4使用sqlite部署问题

0
悬赏园豆:50 [已解决问题] 解决于 2012-06-23 20:34

求救呀,高手!!!

使用Winform+ .net4.2 + EF4 + Sqlite3(System.data.Sqlite.dll) 开发端运行正常,通过Installer制作发布到客户端后均不能访问,主要是找不到sqlite。

已经尝试网上各种方法:

1、app.config中添加

<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, Version=1.0.81.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139" />
  </DbProviderFactories>
</system.data>

2、使用gacutil -i 注册 System.Data.Sqlite.Dll 和 System.data.sqlite.linq.dll

3、在Install项目中添加 System.Data.Sqlite.Dll引用

以上方式均不可行,客户端包括WIN7和XP,均失败。实在无语了,是不是EF4根本不适合sqlite呀?可它明明提供 Sqlite Provider的呀!而且在开发端总是正常的。

 

错误信息有:

(1)指定的存储区提供程序在配置中找不到,或者无效。。

(2)找不到或无法加载已注册的 .net Framework Data Provider 。。

关山月0811的主页 关山月0811 | 初学一级 | 园豆:119
提问于:2012-06-16 01:33
< >
分享
最佳答案
0

开发机器运行的是64位操作系统吗?客户端呢?

收获园豆:50
dudu | 高人七级 |园豆:30979 | 2012-06-16 10:17

开发机与客户机均32位系统

关山月0811 | 园豆:119 (初学一级) | 2012-06-16 10:50

@关山月0811: 改为这样试试:

<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>
dudu | 园豆:30979 (高人七级) | 2012-06-16 11:00

@dudu: 尝试在客户机器安装 System.data.Sqlite.dll 后,使用上面的<DbProviderFactories>后,在客户机可能了。但修改了app.Config后在开发端莫名其妙,又出现EDMX连接的错误“找不到或无法加载已注册的 .Net Framework Data Provider。”:

return dbContext.AdminUser.Count();
关山月0811 | 园豆:119 (初学一级) | 2012-06-16 15:52

@关山月0811: 把System.data.Sqlite.dll复制到bin文件夹中试试

dudu | 园豆:30979 (高人七级) | 2012-06-16 16:05
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册