Fake/Paket "specified module could not be found" 在构建文件中

Fake/Paket "specified module could not be found" in build file

我创建了以下 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 的依赖项 System.Data.SQLite.Core 的依赖项 runtimes\win-x64\native\netstandard2.0 中。尝试在 build.fsx 中使用 #r 语句直接引用它失败并出现错误:

Error opening binary file ... bad cli header, rva

我不确定应该如何解决所有问题,但是 运行 从实际 fsproj 创建的数据库工作得很好,所以我相信它与 FAKEPaket 分辨率。

如果您熟悉 FAKE,这听起来合理吗?你知道如何解决这个问题吗?

重现错误: git clone https://github.com/red-swan/fake-sqlite-problem.git

上面TeaDrivenDev的评论有解决办法。我把答案放在这里,这样我就可以结束这个问题了。

具体来说,我找到了 Native dll SQLite.Interop.dll 并将其放入 FAKE build.fsx 文件所在的根文件夹中。文章 TeaDrivenDev 参考资料也有替代方法。