【问题标题】:System.Data.SQLite.DLL no longer loads after switching target frameworkSystem.Data.SQLite.DLL 切换目标框架后不再加载
【发布时间】:2012-11-21 14:53:52
【问题描述】:

我不得不从 .net 4.5 切换到 .net 4.0,因为我的一些客户仍在使用 WinXP。现在,切换后,这是我得到的错误:

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

我还没有找到解决方案,但这是我迄今为止尝试过的:

  1. 切换回 4.5 - 无效
  2. 再次添加引用 - 无效

有人知道解决办法吗?

【问题讨论】:

  • 类似目标的问题,即您的构建配置可能切换到 AnyCPU 但只有 x86 可用于System.Data.SQLite。可能重复:stackoverflow.com/questions/2048914/…
  • 在 CPU 配置之间来回切换并不能解决此问题。无论哪种方式,它都可以在切换框架之前工作。
  • 嗨,欢迎来到 StackOverflow。不要链接到其他地方的图像,请在您的问题中包含所有相关内容(正如我在上面编辑过的那样)。图片也可以直接上传和嵌入。
  • 谢谢马特,下次我会记住的!

标签: c# sqlite .net-4.0 reference .net-4.5


【解决方案1】:

解决此问题的正确方法是从 http://system.data.sqlite.org 下载适用于您的目标框架的 SQLite 库的更新版本。

您使用的旧 System.Data.SQLite 程序集是针对 .NET 2.0 的混合代码程序集。 .NET 4 下的默认策略是不允许加载此类程序集,但您可以通过在 MyApp.exe.config 文件中添加类似内容来明确允许它用于进程:

<?xml version="1.0"?>
<configuration>
  <startup useLegacyV2RuntimeActivationPolicy="true">
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0,Profile=Client"/>
  </startup>
</configuration>

请注意,此更改可能会破坏其他内容。

This StackOverflow question 覆盖相似的地方:

【讨论】:

  • 这已经被添加到配置文件中,它仍然没有加载。我也有最新版本的dll
  • 问题中的那个是我得到的那个,是的
  • 这个错误指的是旧版本的 SQLite - 1.0.66 根本不是最新版本。也许您的项目正在从您不期望的地方获取参考?
  • 嗯,没想到是啊,我今天早上下载了最新版本。我会检查是否是这个问题。
猜你喜欢
  • 1970-01-01
  • 2019-12-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-20
  • 1970-01-01
  • 1970-01-01
  • 2014-12-10
相关资源
最近更新 更多