我在M1 Pro上使用dotnet 6,并且很难使用SQLite-包。
System.DllNotFoundException: Unable to load shared library 'SQLite.Interop.dll' or one of its dependencies.
这是当我试图运行应用程序时抛出的错误。然而,建筑工程很好。
发布于 2022-03-07 21:03:14
通过从源代码构建Interop.dll文件和M1 macbook上的dotnet库文件,我成功地解决了这个问题。只有构建Interop.dll才会生成EntrypointNotFoundException。要构建库,请从SQLite网站下载源代码,编写时这是文件sqlite-netFx-source-1.0.115.5.zip。解压缩它并运行文件Setup/compile-interop-assembly-release.sh。若要构建库,请在dotnet build -c Release目录中运行System.Data.SQLite。您的互操作文件将在bin/2013/Release/bin中。我将其符号链接到/usr/local/lib/libSQLite.Interop.dll,但也可以将其作为libSQLite.Interop.dll复制到项目目录中。现在,将对bin/NetStandard21/ReleaseNetStandard21/bin/netstandard2.1/System.Data.SQLite.dll的引用添加到您的项目中,它应该运行良好。
更新:在编写时,直接从1.0.115中直接使用过时的NuGet版本也可以很好地运行。
发布于 2022-07-27 19:34:20
作为sqlite尚未瞄准arm64的解决方案,您可以使用.net 6 x64体系结构。
CMD ,打开首选项/usr/local/share/dotnet/x64/dotnet

发布于 2022-01-26 17:45:03
我也有同样的问题。如果我签入“bin/Debug/net6.0/runtime”,每个体系结构都会有一个文件夹,并且在每个体系结构中都会看到"SQLite.Interop.dll“。问题是,唯一可用的架构是“Linuxx64,osx-x64,unix,win,win-arm64,win-x64,win-x86”。所以我们错过了"macos-arm64“。我很乐意使用docker容器,但"linux-arm64“也不存在。除了等待(等待实现)之外,不知道该做什么。更奇怪的是,我在Mac上尝试了用Windows11作为虚拟机,而且它也没有解决win-arm64dll。对不起,没有答案,我只是张贴在这里,以便它可能会触发某人的解决方案。
https://stackoverflow.com/questions/70650711
复制相似问题