我创建了以下Github存储库来记录这个问题:https://github.com/red-swan/fake-sqlite-problem
我无法从依赖于Paket的F# FAKE文件构建sqlite数据库。将nuget包System.Data.SQLite添加到paket.dependencies意味着我可以open System.Data.SQLite,但是当尝试从build.fsx文件构建数据库时,我得到以下错误:
(Unable to load DLL 'SQLite.Interop.dll' or one of its dependencies: The specified module could not be found. (Exception from HRESULT: 0x8007007E))
SQLite.Interop.dll位于System.Data.SQLite的dependency runtimes\win-x64\native\netstandard2.0的dependency System.Data.SQLite.Core中。尝试在build.fsx中使用和#r语句直接引用它会失败,错误为:
Error opening binary file ... bad cli header, rva
我不确定应该如何解决所有问题,但从实际的fsproj运行数据库创建工作得很好,所以我相信这与FAKE或Paket解析有关。
如果您熟悉FAKE,这听起来合理吗?你知道怎么解决这个问题吗?
要重现错误:git clone https://github.com/red-swan/fake-sqlite-problem.git
发布于 2019-02-07 14:08:54
TeaDrivenDev的上述评论提供了解决方案。我把答案放在这里,这样我就可以结束这个问题。
具体地说,我找到了本地动态链接库SQLite.Interop.dll,并将其放到了假build.fsx文件所在的根文件夹中。TeaDrivenDev参考中的文章也有其他方法。
https://stackoverflow.com/questions/54564350
复制相似问题