“无法在客户端计算机上加载 DLL 'SQLite.Interop.dll' 错误

"Unable to load DLL 'SQLite.Interop.dll' error on client machine

我已经创建了一个 Winforms 应用程序,并且正在使用带有 Entity Framework 6 的 SQLite。我正在使用 Visual Studio 2013。

该应用程序在我的本地机器上运行完美。但是,程序在另一台机器上运行时出现如下错误:

“无法加载 DLL'SQLite.Interop.dll': 找不到指定的模块。

就我而言,问题是当我发布我的项目时,Interop dll 没有被复制到目录中。

我的问题是:如何在发布应用程序时强制将此 dll 复制到正确的目录?

在 Visual Studio 中将 SQLite.Interop.dll 参考 属性 "Copy Local" 设置为真。

我找到了解决我的问题的方法。我已经正确安装了所有的 SQLite 包,但是 Interop.dlls 在我发布应用程序时没有复制过来。

我所做的是构建项目,然后进入 bin/Debug/ 文件夹并复制包含 SQLite.Interop.dll 文件的 x86 和 x64 文件夹。然后我将这些文件夹包含在我的项目中。如果现在一切正常。

为了后代,如果您通过 NuGet 添加了 SQLite 而它没有复制,您可以将其添加到您的 csproj 文件中,它应该复制 x86 和 x64:

 <PropertyGroup> 
    <ContentSQLiteInteropFiles>true</ContentSQLiteInteropFiles>
    <CopySQLiteInteropFiles>false</CopySQLiteInteropFiles>
    <CleanSQLiteInteropFiles>false</CleanSQLiteInteropFiles>
    <CollectSQLiteInteropFiles>false</CollectSQLiteInteropFiles>
 </PropertyGroup>