C#无法找到或加载已注册的.Net Data Provider错误

时间:2009-12-09 16:38:25

标签: c# system.data.sqlite

我正在使用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版本才能让这个错误消失?

任何帮助都将不胜感激。

感谢。

4 个答案:

答案 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版本。