什么版本的sqlite DLL必须用于支持WPF应用程序在windows7 32bit中运行 [英] What version of sqlite DLL have to use to support in WPF application to run in windows7 32bit

查看:58
本文介绍了什么版本的sqlite DLL必须用于支持WPF应用程序在windows7 32bit中运行的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在我的应用程序中使用了x86 SQLite.interop.dll和SQLite3.dll它在Windows10中运行,但是在windows7中崩溃时出现以下错误:

异常信息:System.DllNotFoundException < System.Data.SQLite.UnsafeNativeMethods.sqlite3_config_none(System.Data.SQLite.SQLiteConfigOpsEnum)上的

System.Data.SQLite.SQLite3.StiteIsInitialized()上的

System.Data.SQLite.SQLiteLog.Initialize()上的

System.Data.SQLite.SQLiteConnection..ctor上的
(System.String,Boolean)

在System.Data.SQLite.SQLiteConnection..ctor(System.String)

在PointOfSale.CursorWait.Logger.IfExists(System.String)

在PointOfSale.CursorWait。 Logger.getPath(System.String)

在PointOfSale.CursorWait.Logger..ctor()

在PointOfSale.CursorWait.SQLSelects..ctor()

在PointOfSale.Logon.btnLogin_Click(System.Object,System.Windows.RoutedEventArgs)

在System.Windows.RoutedEventHandlerInfo.InvokeHandler(系统。对象,System.Windows.RoutedEventArgs)

在System.Windows.EventRoute.InvokeHandlersImpl(System.Object,System.Windows.RoutedEventArgs,Boolean)

在System.Windows。 UIElement.RaiseEventImpl(System.Windows.DependencyObject,System.Windows.RoutedEventArgs)

在System.Windows.UIElement.RaiseEvent(System.Windows.RoutedEventArgs)

在System。 Windows.Controls.Primitives.ButtonBase.OnClick()

在System.Windows.Controls.Button.OnClick()

在System.Windows.Controls.Primitives.ButtonBase。 OnAccessKey(System.Windows.Input.AccessKeyEventArgs)



我尝试过:



我尝试使用SQLite.dll(x86)和SQLite.interop.dll(x86)

I used x86 SQLite.interop.dll and SQLite3.dll in my application it is running in Windows10, but in windows7 it is crashing with the following error:
Exception Info: System.DllNotFoundException
at System.Data.SQLite.UnsafeNativeMethods.sqlite3_config_none(System.Data.SQLite.SQLiteConfigOpsEnum)
at System.Data.SQLite.SQLite3.StaticIsInitialized()
at System.Data.SQLite.SQLiteLog.Initialize()
at System.Data.SQLite.SQLiteConnection..ctor(System.String, Boolean)
at System.Data.SQLite.SQLiteConnection..ctor(System.String)
at PointOfSale.CursorWait.Logger.IfExists(System.String)
at PointOfSale.CursorWait.Logger.getPath(System.String)
at PointOfSale.CursorWait.Logger..ctor()
at PointOfSale.CursorWait.SQLSelects..ctor()
at PointOfSale.Logon.btnLogin_Click(System.Object, System.Windows.RoutedEventArgs)
at System.Windows.RoutedEventHandlerInfo.InvokeHandler(System.Object, System.Windows.RoutedEventArgs)
at System.Windows.EventRoute.InvokeHandlersImpl(System.Object, System.Windows.RoutedEventArgs, Boolean)
at System.Windows.UIElement.RaiseEventImpl(System.Windows.DependencyObject, System.Windows.RoutedEventArgs)
at System.Windows.UIElement.RaiseEvent(System.Windows.RoutedEventArgs)
at System.Windows.Controls.Primitives.ButtonBase.OnClick()
at System.Windows.Controls.Button.OnClick()
at System.Windows.Controls.Primitives.ButtonBase.OnAccessKey(System.Windows.Input.AccessKeyEventArgs)

What I have tried:

I tried with SQLite.dll(x86) and SQLite.interop.dll(x86)

推荐答案

为项目设置.Net Framework版本时,Nuget将为您选择正确的SqLite版本。



棘手的一方是配置安装程序以选择正确的32位或64位版本。



在我的应用程序中,我创建了x64& x32文件夹和添加为链接正确版本的 SQLite.Interop.dll 从Nuget包文件夹到各自的x64 / x32应用程序文件夹。安装程序(在我的情况下是OneClick)将它们打包并正确安装它们。是的,甚至是Windows 7(32位)。
When you set the .Net Framework version for the project, Nuget will choose the correct SqLite version for you.

The tricky party is configuring the installer to choose the correct 32bit or 64bit version .

In my apps, I create x64 & x32 folders and "Add as Link" the correct versions of SQLite.Interop.dll from the Nuget package folder into their respective x64/x32 app folders. The installer (OneClick in my case) packages them up and installs them correctly. Yes, even Windows 7 (32bit).


这篇关于什么版本的sqlite DLL必须用于支持WPF应用程序在windows7 32bit中运行的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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