我只是按照说明进行操作
SQLite的-ON-视觉工作室与 - 的NuGet-和易于说明
我能够编译样本C#appliation
"任何cpu"
选项.
但是当我运行应用程序时,如果我选择的话
"喜欢32位"
选项,我的应用程序崩溃:
"无法加载DLL"SQLite.Interop.dll"
如果我取消选中"prefer 32 bit"选项,它在我的64位机器上工作正常.
为什么会这样?有任何修复建议吗?
PS:我使用64位Windows 8.我为SQLite提供了[x86]和[x64]文件夹.
PS 1: 错误:
System.TypeInitializationException:'System.Data.SQLite.SQLiteFactory'的类型初始值设定项引发异常.---> System.DllNotFoundException:无法加载DLL'SQLite.Interop.dll':找不到指定的模块.(从HRESULT异常:0x8007007E)在System.Data.SQLite.UnsafeNativeMethods.sqlite3_config_none(SQLiteConfigOpsEnum OP)在System.Data.SQLite.SQLite3.StaticIsInitialized()在System.Data.SQLite.SQLiteLog.Initialize()在System.Data. SQLite.SQLiteFactory..cctor()---内部异常堆栈跟踪结束---在System.Data.SQLite.SQLiteFactory..ctor()
PS 3:
我注意到一件有趣的事情.虽然在视觉工作室它崩溃,当我运行我的程序exe,只需单击它,它的工作原理.
以管理员身份运行命令提示符。 cd进入包含 x64 .dll 的目录。然后输入:gacutil -i SQLite.Interop.dll。然后cd转到 x86 .dll 所在的目录。再次输入:gacutil -i SQLite.Interop.dll. 现在应该可以正常工作了。
其作用是将每个程序集安装到系统上的 GAC(全局程序集缓存)中。它根据编译方式(x86 或 x64)将它们放入正确的系统缓存目录中。这应该仅用于调试目的。
对于客户端机器。分别针对 x86 和 x64 进行部署。当然,为每个文件添加正确的 .dll 版本。