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

时间:2015-08-03 01:57:50

标签: c# sqlite dll deployment publish

我创建了一个Winforms应用程序,并使用SQLite和Entity Framework 6.我使用的是Visual Studio 2013.

该应用程序在我的本地计算机上运行良好。但是,当程序在另一台计算机上运行时,会发生以下错误:

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

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

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

3 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:1)

对于后人来说,如果您通过NuGet添加SQLite并且它没有复制,您可以将其添加到您的csproj文件中,它应该复制x86和x64:

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

答案 2 :(得分:0)

在Visual Studio中,将SQLite.Interop.dll引用属性“Copy Local”设置为true。