这是来自
的后续问题 http://stackoverflow.com/questions/36166266/sqlite3-dll-cannot-be-used-in-c-sharp-application-in-vs2013-on-win-7/36169278#36169278
我从
安装了dotConnect.Express.for.SQLitehttps://www.nuget.org/packages/dotConnect.Express.for.SQLite/
现在,对于32位的C#项目,它起作用了。但是,对于x64,我收到了错误:
An unhandled exception of type 'System.IO.FileLoadException' occurred in XMR.UserModel.dll
Additional information: Could not load file or assembly 'Devart.Data.SQLite, Version=5.2.457.0, Culture=neutral, PublicKeyToken=09af7300eec23701' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)
似乎.net需要一个x64版本,但已安装的" dotConnect"是32位?
有什么建议吗?
答案 0 :(得分:1)
用于SQLite程序集的dotConnect是使用/ platform:anycpu选项构建的。因此,您可以在任何平台(x86或x64)上使用提供程序的程序集。有关更多信息,请参阅http://msdn.microsoft.com/en-us/library/zekwfyz4.aspx。
但是,您需要确保使用引擎库sqlite3.dll的兼容版本。在安装桌面dotConnect for SQLite期间,将部署适当容量的引擎库版本。要获取sqlite3.dll的两个版本(x86和x64),请从https://www.devart.com/dotconnect/sqlite/download.html安装桌面dotConnect for SQLite Express。默认情况下,安装会将这些文件放在此处:
C:\ Program Files(x86)\ Devart \ dotConnect \ SQLite \ sqlite3.dll
C:\ Program Files(x86)\ Devart \ dotConnect \ SQLite \ x64 \ sqlite3.dll
部署时,创建一个名为" x86"的文件夹。 (没有引号)或" x64" (不带引号)并将其放在具有应用程序程序集的文件夹中。这是dotConnect for SQLite首先寻找sqlite3.dll的地方。