无法加载SQLite Interop DLL

时间:2017-01-12 09:24:22

标签: .net vb.net sqlite visual-studio-2010

我正在尝试在Windows 10计算机中安装SQLite。我想在我的项目中使用SQLite数据库。目标框架是.net 4.0,我正在使用VS2010。

SQLite .NET下载页面包含以下内容:

64位Windows的安装程序(.NET Framework 4.0)  源码-netFx40-设置束-x64-2010-1.0.104.0.exe  (14.27 MiB)此安装程序包具有混合模式程序集,并将为x64版本的System.Data.SQLite 1.0.104.0(3.15.2)程序包安装所有必需的运行时组件和依赖项。包含x64的Visual C ++ 2010 SP1运行时。需要.NET Framework 4.0。

源码-netFx40-设置-x64-2010-1.0.104.0.exe  (14.26 MiB)此安装程序包将为x64版本的System.Data.SQLite 1.0.104.0(3.15.2)程序包安装所有必需的运行时组件和依赖项。包含x64的Visual C ++ 2010 SP1运行时。需要.NET Framework 4.0。

当我使用sqlite-netFx40-setup-x64-2010-1.0.104.0.exe安装并在我的项目中使用SQLite时,我收到错误“无法加载DLL'SQLite.Interop.dll':指定的模块可以找不到。(HRESULT异常:0x8007007E)“。要解决它,我必须在调试文件夹中复制interop dll文件。

然而,当我使用sqlite-netFx40-setup-bundle-x64-2010-1.0.104.0.exe安装时,我可以运行我的程序而无需interop dll。它不会给出任何错误,只需要System.Data.SQLite.dll。

我想知道为什么会这样?

1 个答案:

答案 0 :(得分:0)

1-在项目的根目录中创建一个lib,然后在其中复制SQLite.Interop.dll。

将此添加到您的.csproj文件:

  <ItemGroup>
    <ContentWithTargetPath Include="lib\SQLite.Interop.dll">
      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
      <TargetPath>SQLite.Interop.dll</TargetPath>
    </ContentWithTargetPath>
  </ItemGroup>