C# SQLite与VS2010

C# SQLite与VS2010,c#,database,visual-studio,visual-studio-2010,sqlite,C#,Database,Visual Studio,Visual Studio 2010,Sqlite,我正在做一个项目,我需要使用一些数据库。我选择SQLite是因为它易于使用。但是我在使用System.Data.SQLite时遇到了一些麻烦。我使用的是来自的System.Data.SQLite,但当我尝试运行该程序时,我收到以下异常消息。我正在使用Visual Studio 2010编写C 无法加载文件或程序集 'System.Data.SQLite,版本=1.0.66.0, 文化=中立, PublicKeyToken=1fdb50b1b62b4c84, 可重定目标=是”或其 依赖关系。给定的

我正在做一个项目,我需要使用一些数据库。我选择SQLite是因为它易于使用。但是我在使用System.Data.SQLite时遇到了一些麻烦。我使用的是来自的System.Data.SQLite,但当我尝试运行该程序时,我收到以下异常消息。我正在使用Visual Studio 2010编写C

无法加载文件或程序集 'System.Data.SQLite,版本=1.0.66.0, 文化=中立, PublicKeyToken=1fdb50b1b62b4c84, 可重定目标=是”或其 依赖关系。给定的程序集名称 或代码库无效。例外 来自HRESULT:0x80131047

我不知道为什么会这样,怎么处理


我必须为明天的项目做好准备,需要您的帮助。

根据,在.Net Framework 4和SQLite中存在一个已知的问题。解决方案是将以下部分添加到.config文件中:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <startup useLegacyV2RuntimeActivationPolicy="true">
    <supportedRuntime version="v4.0" />
  </startup>
</configuration>

这将使用4.0框架正确加载2.0程序集。显然,当前的SQLite库是作为.Net 2.0程序集生成的。

添加对System.Data.SQLite程序集的引用时,请确保将Copy Local属性设置为true:

在程序集System.Data.SQLite上单击鼠标右键 将复制本地更改为True
这加上添加的,应该可以使SQLite在VS 2010的.Net v4.0框架上运行。

如果您的项目中需要DBML层和LINQ to SQL Lite,最好使用DEVART的LinqExpress工具

它是免费的,让您可以可视化地构建模型,然后在项目中使用Linq生成的类-无论是VS Express还是full monty模式

一旦将LinqExpress for SQLLite添加到项目的引用中,它也将启动SQLLite dll


请注意:我在Devart公司没有股份,但当我需要免费产品的帮助时,他们会免费帮助我。

我也有这个例外。 以下是我的解决方案:

修改app.config:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <startup useLegacyV2RuntimeActivationPolicy="true">
    <supportedRuntime version="v4.0" />
  </startup>
</configuration>
在解决方案资源管理器->{Project}->Reference->System.Data.SQLite->Properties->Copy Local中,选择True

您需要同时部署project.exe和project.exe.config


我不知道您为什么需要部署.config,但如果我在没有project.exe.config的情况下部署project.exe,它将不起作用。

我也遇到了同样的问题。我正在使用VS express 2010和sqlite1.0.66.0。事实上,它在我的开发和调试过程中运行良好,但在我将编译后的dll部署到生产服务器之后。我犯了这个错误。我意识到这是由不同的sqlite dll版本引起的,因此我通过以下步骤修复了它:

1在带有生产服务器的开发机器上安装相同的sqlite版本,版本为1.0.87; 2将system.data.sqlite.dll从版本1.0.87文件夹复制到.NET Framework程序集参考文件夹C:\Program Files x86\reference Assemblys\Microsoft\Framework.NETFramework\v4.0中,该文件夹在VS express 2010 for.NET Framework 4.0中使用

3重新编译项目以获得新的DLL 4将第3步中的dll复制到生产服务器上,然后问题就消失了


您也可以参考此博客:

请发布您用于加载程序集的代码,或者在没有代码的情况下描述您使用的步骤。我只是将其添加为参考并使用statement@thecodekid:您要生成的运行时版本是什么?