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

问题描述 投票:1回答:3

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

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

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

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

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

c# sqlite dll deployment publish
3个回答
3
投票

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

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


1
投票

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

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

0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.