我创建了一个Winforms应用程序,并使用SQLite和Entity Framework 6.我使用的是Visual Studio 2013.
该应用程序在我的本地计算机上运行良好。但是,当程序在另一台计算机上运行时,会发生以下错误:
“无法加载DLL'SQLite.Interop.dll':找不到指定的模块。
就我而言,问题是我发布项目时没有将Interop dll复制到目录。
我的问题是:在发布应用程序时,如何强制将此dll复制到正确的目录?
答案 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。