SQLite与VS 2010
我正在研究一个项目,我需要使用一些数据库。我之所以选择SQLite是因为它易于使用。但是我有一些麻烦让它工作。我正在使用来自http:// sqlite的 System.Data.SQLite .phxsoftware.com /但是当我尝试运行程序时,我收到以下exception消息。我正在用Visual Studio 2010编写C#。
无法加载文件或程序集’System.Data.SQLite,Version = 1.0.66.0,Culture = neutral,PublicKeyToken = 1fdb50b1b62b4c84,Retargetable = Yes’或其依赖项之一。 给定的程序集名称或代码库无效。 (HRESULTexception:0x80131047)
我不知道为什么我得到这个以及如何处理它。
我必须为明天准备好这个项目并需要你的帮助……
添加对System.Data.SQLite
程序集的引用时,请确保将“Copy Local”的属性设置为true:
- 右键单击程序集
System.Data.SQLite
- 将“复制本地”更改为True
添加Dillie-O的答案应该让VSite在VS 2010中的.Net v4.0框架上运行。
根据这篇文章 ,.Net Framework 4和SQLite存在一个已知问题。 解决方案是将以下部分添加到.config文件中:
这将使用4.0框架正确加载2.0程序集。 显然,当前的SQLite库是作为.Net 2.0程序集构建的。
如果您需要在项目中使用DBML层和LINQ to SQL Lite,最好使用www.devart.com上的DEVART LinqExpress工具。
它是免费的,它允许您直观地构建模型,然后在项目中使用Linq生成的类 – 更好的VS Express或完整的monty模式。
一旦LinqExpress for SQLLite添加到项目的引用中,它也会启动sqlLite dll。
请注意:我没有Devart公司的股份,但是当我需要免费产品的帮助时,他们免费帮助了我。
我也遭受这种例外。 这是我的解决方案:
修改app.config:
在“Solution Explorer – > {Project} – > Reference – > System.Data.SQLite” – > Properties – > Copy Local“中,选择”True“
您需要一起部署project.exe
和project.exe.config
。
我不知道为什么你需要部署.config,但如果我在没有project.exe
情况下部署project.exe
它就不起作用。
我也遇到了同样的问题。 我正在使用VS express 2010和sqlite(1.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 Assemblies \ Microsoft \ Framework.NETFramework \ v4.0)中使用VS Express 2010 for .NET Framework 4.0
3)重新编译项目以获取新的DLL 4)将步骤3中的dll复制到生产服务器上,然后问题就消失了。
您也可以参考以下博客: http : //www.tsjensen.com/blog/post/2011/06/04/SQLite+On+Visual+Studio+2010+Setup+Itrutructions.aspx