我正在使用SQLite和http://sqlite.phxsoftware.com/的包装器,当我向项目添加数据源时,我收到错误:
“无法自动生成某些更新命令,数据库返回以下错误:无法找到或加载已注册的.Net Framework数据提供程序”
我有最新的.Net服务包,我已经卸载并重新安装了SQLite软件。我还查看了其他建议此条目不在machine.config文件中的地方:
<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.27.1, Culture=neutral, PublicKeyToken=db937bc2d44ff139"/>
当我看到我甚至没有在C:\ WINDOWS \ Microsoft.NET \ Framework \ v3.5文件夹中找到machine.config文件但是我确实在C:\ WINDOWS \ Microsoft.NET中找到了一个框架\ V2.0.50727
有谁知道发生了什么事?我是否需要卸载整个.Net Framework,然后只是安装3.5版本才能让这个错误消失?
任何帮助都将不胜感激。
感谢。
答案 0 :(得分:6)
您可以在应用程序中添加对System.Data.SQLite的直接引用并实例化SQLiteFactory吗?
我们在我们的应用程序的bin导向器(而不是GAC)中直接使用SQLite和dll,并在我们的Web / App.config中使用此行,因此我们不依赖于Machine.config(简化部署)。
<system.data>
<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"/>
</DbProviderFactories>
</system.data>
答案 1 :(得分:1)
如果计算机没有安装Microsoft Visual C++ 2010
,也会发生这种情况答案 2 :(得分:1)
你不需要visual C ++ 2010 ...... !!! 仅在发布文件夹中复制“msvcr100.dll”...
“System.Data.SQLite.dll”需要“msvcr100.dll”
答案 3 :(得分:0)
我假设您使用的是VS 2008.请检查您正在构建的Framework版本。