VS 2019 Winform Project 和 SQLite 错误:无法加载 DLL 'SQLite.Interop.dll':找不到指定的模块



问候比我聪明的人。

发布使用 SQLite 的项目后,当程序的一部分运行以访问 DB 命令时,我收到此错误。

无法加载 DLL 'SQLite.Interop.dll':指定的模块可以 未找到

现在我花了几个小时,浏览了许多类似的线程,尝试了所有建议,看看我是否可以解决这个问题,但是到目前为止我还没有运气。

我已经做了以下工作。

确保 SQLite.Core 包含在主项目和所有子项目区域。

已确保.dll在调试站中可用。

确保正确设置依赖项。

专门发布到 x64 平台。

专门发布到 x86 平台。

禁用"首选 32 位"。

复制了一些对 csproj 的特定引用。

一切都无济于事。如果有人对此有任何经验,谁可能能够提出一些我没有尝试过的新东西来解决这个问题,我将不胜感激。

因此,经过大量研究,我终于找到了解决方案。

此错误似乎有很多潜在原因,但是在这种情况下,这为我解决了问题。

将所有内容恢复到原来的状态,确保在程序集中引用System.Data.SQLite.Core。

关闭 VS/解决方案并在存储库中打开 csproj 文件。将以下内容复制到文件中。

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

保存文件(可能会事先创建它的副本,以确保如果它不适合您,您可以替换它(。

确保互操作.dll不在存储库中除 bin/debug/x86 和 x64 之外的任何位置。

然后继续测试您的项目,然后发布它。

原因:

由于互操作包含在 nuget 安装中,但未向下复制,因此这段代码可确保在发布期间复制互操作。

谢谢互联网。

最新更新