C# &引用;无法加载DLL';SQLite.Interop.dll';客户端计算机上的错误

C# &引用;无法加载DLL';SQLite.Interop.dll';客户端计算机上的错误,c#,sqlite,dll,deployment,publish,C#,Sqlite,Dll,Deployment,Publish,我已经创建了一个Winforms应用程序,正在使用SQLite和EntityFramework6。我正在使用Visual Studio 2013 该应用程序在我的本地机器上运行良好。但是,当程序在另一台机器上运行时,会发生以下错误: 无法加载DLL“SQLite.Interop.DLL”:找不到指定的模块 就我而言,问题是在发布项目时,互操作dll没有被复制到目录中 我的问题是:在发布应用程序时,如何强制此dll复制到正确的目录?在Visual Studio中,将SQLite.Interop.d

我已经创建了一个Winforms应用程序,正在使用SQLite和EntityFramework6。我正在使用Visual Studio 2013

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

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

就我而言,问题是在发布项目时,互操作dll没有被复制到目录中


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

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

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

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


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

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


我所做的是构建项目,然后进入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>

符合事实的
错误的
错误的
错误的

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

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

符合事实的
错误的
错误的
错误的

根本没有对SQLite.Interop.dll的引用。我尝试手动添加它,但它不存在于该列表中。如何使其可用?转到工具->库包管理器->包管理器控制台,然后选择要发布的项目并输入:
Install Package System.Data.SQLite
根本没有对SQLite.Interop.dll的引用。我尝试手动添加它,但它不存在于该列表中。如何使其可用?转到工具->库包管理器->包管理器控制台,然后选择要发布的项目并输入:
Install Package System.Data.SQLite
。现在的问题是,我们如何自动创建副本,因为我无法添加对此文件的项目的引用,因为VS无法将此文件识别为程序集或COM组件。顺便说一句,非常感谢。打开VisualStudio后,通过NUGET Package manager 2搜索并安装SQLite.Core。在解决方案资源管理器中,右键单击项目名称-->添加-->新建文件夹3。将文件夹命名为x64。重复此过程,添加文件夹并将其命名为x86 5。右键单击x64文件夹-->添加-->现有项,然后浏览调试文件夹。您将找到x64文件夹。选择“SQLite.Interop.dll”文件,然后点击OK。6.对x86文件夹重复步骤5。7.右键单击刚刚添加的每个DLL并选择“属性”。在“复制到输出目录”选项中,选择“复制始终”这是一种方式。现在的问题是,我们如何自动创建副本,因为我无法添加对此文件的项目的引用,因为VS无法将此文件识别为程序集或COM组件。顺便说一句,非常感谢。打开VisualStudio后,通过NUGET Package manager 2搜索并安装SQLite.Core。在解决方案资源管理器中,右键单击项目名称-->添加-->新建文件夹3。将文件夹命名为x64。重复此过程,添加文件夹并将其命名为x86 5。右键单击x64文件夹-->添加-->现有项,然后浏览调试文件夹。您将找到x64文件夹。选择“SQLite.Interop.dll”文件,然后点击OK。6.对x86文件夹重复步骤5。7.右键单击刚刚添加的每个DLL并选择“属性”。在“复制到输出目录”选项中,选择“复制始终”这对我很有效,谢谢。您知道为什么需要这样做吗?我相信“ContentSQLiteInterpFiles”必须告诉Visual Studio将这些文件作为内容复制到输出目录中(这样在编译和运行应用程序时,应用程序就可以使用这些文件)。这对我很有效,谢谢。您知道为什么需要这样做吗?我相信“ContentSQLiteInterpFiles”必须告诉Visual Studio将这些文件作为内容复制到输出目录中(这样,在编译和运行应用程序时,应用程序就可以使用这些文件)。