切换目标框架后,System.Data.SQLite.DLL不再加载

时间:2012-11-21 14:53:52

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

我不得不从.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. 再次添加引用 - 无法正常工作
  3. 任何人都知道解决方案吗?

1 个答案:

答案 0 :(得分:2)

解决此问题的正确方法是从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涵盖类似的理由: