gpt4 book ai didi

.net - 无法间歇性加载 SQLite

转载 作者:行者123 更新时间:2023-12-02 04:04:42 28 4
gpt4 key购买 nike

我有一个 .NET 4 应用程序,它由应用程序和两个类库组成。全部都使用对 System.Data.SQLite 的引用。我使用的是 x86 版本的 SQLite,并且所有程序集都设置为 x86。

在某些机器上,当我尝试在使用 SQLite 的应用程序中执行某些操作时,我会收到未处理的异常:

Could not load file or assembly 'System.Data.SQLite, Version=1.0.79.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139' or one of its dependencies. An attempt was made to load a program with an incorrect format.

我对此束手无策,因为我在 x86 和 x64 中尝试了 .NET 3.5 和 .NET 4 SQLite DLL,但遇到了相同的错误。我已经在四台机器上进行了测试。以下工作正常:

  • Win7 旗舰版 x64
  • Win7 专业版 x64
  • 服务器 2008 x64

以下抛出异常:

  • Win7 Ultimate x64(用户计算机)
  • Win7 上的 XP 模式内的 WinXP终极 x64 可以运行

如果是架构问题,我希望在运行的 Win7 x64 上运行 XP 模式也能正常工作,但事实并非如此。另外,SQLite bundle 中包含的 test.exe 文件都不能在 VMWare 中工作,这让我觉得缺少了一些东西。

我已在 XP 模式下的计算机上运行 FUSLOGVW,这是 System.Data.SQLite 的条目:

The operation was successful.
Bind result: hr = 0x0. The operation completed successfully.

Assembly manager loaded from: c:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\clr.dll
Running under executable C:\Documents and Settings\XPMUser\Desktop\Release\ChickenPing.exe
--- A detailed error log follows.

=== Pre-bind state information ===
LOG: User = VIRTUALXP-92688\XPMUser
LOG: DisplayName = System.Data.SQLite, Version=1.0.79.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139
(Fully-specified)
LOG: Appbase = file:///C:/Documents and Settings/XPMUser/Desktop/Release/
LOG: Initial PrivatePath = NULL
LOG: Dynamic Base = NULL
LOG: Cache Base = NULL
LOG: AppName = ChickenPing.exe
Calling assembly : ChickenPing.DAL, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null.
===
LOG: This bind starts in default load context.
LOG: Using application configuration file: C:\Documents and Settings\XPMUser\Desktop\Release\ChickenPing.exe.Config
LOG: Using host configuration file:
LOG: Using machine configuration file from c:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\config\machine.config.
LOG: Post-policy reference: System.Data.SQLite, Version=1.0.79.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139
LOG: GAC Lookup was unsuccessful.
LOG: Attempting download of new URL file:///C:/Documents and Settings/XPMUser/Desktop/Release/System.Data.SQLite.DLL.
LOG: Assembly download was successful. Attempting setup of file: C:\Documents and Settings\XPMUser\Desktop\Release\System.Data.SQLite.dll
LOG: Entering run-from-source setup phase.
LOG: Assembly Name is: System.Data.SQLite, Version=1.0.79.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139
LOG: Binding succeeds. Returns assembly from C:\Documents and Settings\XPMUser\Desktop\Release\System.Data.SQLite.dll.
LOG: Assembly is loaded in default load context.

这表明成功了,但未处理的异常仍然发生?

最佳答案

这有点难以追踪。事实证明,需要 VC++ 2010 可再发行运行时。据我所知,System.Data.SQLite 从来没有这种依赖关系,或者至少我从来没有意识到这一点。

关于.net - 无法间歇性加载 SQLite,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9248549/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com