什么版本的sqlite DLL必须用于支持WPF应用程序在windows7 32bit中运行 [英] What version of sqlite DLL have to use to support in WPF application to run in 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 ofSQLite.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屋!