2017-06-08 50 views
0

我想让SQLite在W2K SP4上工作。它总是崩溃,没有说任何Windows消息:Sqlite(ADO)和Windows 2000

“****。exe已生成错误,将被Windows关闭,您将需要重新启动程序...正在创建错误日志。”

每次程序想要访问System.Data.SQLite.dll时,都会发生这种情况,我也尝试了一些System.Data.SQLite.dll.config中的mod,但没有成功。

我尝试了不同的二进制sqlite没有成功。加载sqlite核心表单nuget sqlite3二进制文件,没有任何工作。

我的建议是,这与lib的“预加载特性”有关。

我使用VS2017与.net 2作为目标框架,目标plattform是x86(不知道这是否重要),也尝试过与VS2010,同样的问题。

我希望有人能帮助我解决这个

亲切的问候

+0

你在调试或发行?如果释放,是二进制被移动到另一个地方?在将二进制文件移动到其他文件夹时,我遇到了SQLite问题,这是因为没有找到“SQLite.Interop.dll”。解决方法是保留文件夹结构和所有文件,或使用Fody嵌入dll。如果不是你的情况,希望别人能帮忙,我不知道。 –

+0

我将它从我的开发主机移动到目标环境。但结构是VS创建的。如果我运行它的数据库文件被创建,但随后退出上面的消息。如果我通过网络上的dev maschine运行它。它的工作原理如下:S – s4rge

+0

如果它在IDE中工作,但不在目标机器上,那么您可能需要查看依赖关系。如果它在IDE中不起作用,也许你需要检查你的代码。尝试创建一个结构非常简单的最小工作数据库来查找和测试问题。 –

回答

0

在我的情况发生同样的错误(在Windows 2000 SP4,C++应用程序使用SQLite 3.19.1,合并)。原因是由SQLite使用函数rand_s()。 SQLite 3.12和更新版本在winRandomness()实现中使用rand_s。 rand_s()取决于RtlGenRandom,它仅在Windows XP和更高版本中可用。请尝试使用System.Data.SQLite.dll 1.0.99.1(SQLite 3.9.3)或更早的版本。为1.0.99

下载页面:

https://system.data.sqlite.org/index.html/artifact/094463a49b6d027c