新建SQLite混合组件 [英] New SQLite mixed assemblies

查看:248
本文介绍了新建SQLite混合组件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

previously .NET SQLite的图书馆是从 http://sqlite.phxsoftware.com ,但他们最近已经接管主SQLite的团队,陆续的 System.Data.SQLite下载页面 。新套餐似乎没有了包含混合组件(单个组件包含sqlite3.dll和.NET包装)。

Previously .NET SQLite libraries were available from http://sqlite.phxsoftware.com, but they have recently been taken over by the main SQLite team and have moved System.Data.SQLite Download Page. The new packages don't seem to contain mixed assemblies anymore (single assembly containing sqlite3.dll and the .NET wrapper).

新的软件包中有一个.NET的DLL和 SQLite.Interop.dll 它基于文件不需要在桌面上,但我的应用程序加载失败与无法加载DLLSQLite.Interop.DLL:指定的模块找不到。我试图运行在IIS / IIS防爆preSS的应用与程序池设置为32位。

The new package comes with the .NET DLL and SQLite.Interop.dll which based on the documentation is not needed on the desktop but my application fails to load with Unable to load DLL 'SQLite.Interop.DLL': The specified module could not be found.. I have tried running the application under IIS/IIS Express with apppool set to 32-bit.

我试图复制 SQLite.Interop.dll 文件到文件夹,系统文件夹, ASP.NET的临时文件夹,但仍然得到同样的错误。

I have tried copying the SQLite.Interop.dll file into the bin folder, the system folder, and the ASP.NET temp folder but still get the same error.

是否有混合组件,用户可随时随地可用的新版本?如果没有,有没有办法来解决这个无法加载DLLSQLite.Interop.DLL 错误?

Are there mixed assemblies for new releases available anywhere? If not, is there a way to fix the Unable to load DLL 'SQLite.Interop.DLL error?

推荐答案

我找到了解决办法。这个问题是由于已知问题与SQLite.Interop.dll。

I found the solution. The problem was due to a known issue with SQLite.Interop.dll.

这是从解决办法为我工作。

This is the workaround from that worked for me.

从使用的Dependency Walker    http://dependencywalker.com/ 看   在SQLite.Interop.dll(x86和x64)   表明,它依赖于MSVCR100.dll

Using Dependency Walker from http://dependencywalker.com/ to look at SQLite.Interop.dll (x86 and x64) shows that it depends on MSVCR100.dll.

老1.0.66.0版本   System.Data.SQLite.dll不具有   这种依赖性。与当前   建立,我们将不得不重新分配   该MSVCR100.dll亦或是运行   安装微软。

The old 1.0.66.0 version of System.Data.SQLite.dll does not have this dependency. With the current build, we would have to redistribute that MSVCR100.dll also or run an installer from Microsoft.

解决方案:从:   缺少msvcr100.dll

Solution: From: Missing msvcr100.dll

使用静态链接。在里面   SQLite.Interop Visual Studio项目。   去这个属性设置:项目    - >属性 - >配置属性 - > C / C ++ - > code代    - >运行库和值更改为多线程(/吨)。 (本   电流源$ C ​​$ C(1.0.71.0)有   多线程DLL(/ MD),这将导致   该dll依靠MSVCR100.dll和   在dllimport的(和LoadLibary()),以   当用户没有它)失败。

Use static linking. In the SQLite.Interop Visual Studio project. Go to this Properties setting: Project -> Properties -> Configuration Properties -> C/C++ -> Code Generation -> Runtime Library and change the value to Multi-threaded (/MT). (The current source code (1.0.71.0) has Multi-threaded DLL (/MD) which causes the dll to rely on MSVCR100.dll and the DLLImport (and LoadLibary()) to fail when users do not have it).

我认为静态链接应该是   改变,所以它是默认   SQLite.Interop.dll。

I believe static linking should be changed so it is the default for SQLite.Interop.dll.

这篇关于新建SQLite混合组件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆