Dll “假冒/包装”;找不到指定的模块";内置文件
我创建了以下Github repo来记录问题: 我无法依靠Dll “假冒/包装”;找不到指定的模块";内置文件,dll,f#,.net-assembly,f#-fake,paket,Dll,F#,.net Assembly,F# Fake,Paket,我创建了以下Github repo来记录问题: 我无法依靠Paket从F#FAKE文件构建sqlite数据库。将nuget包System.Data.SQLite添加到paket.dependencies意味着我可以打开System.Data.SQLite,但是当试图从build.fsx文件构建数据库时,我遇到以下错误: (无法加载DLL'SQLite.Interop.DLL'或其依赖项之一:找不到指定的模块。(HRESULT异常:0x8007007E)) SQLite.Interop.dll位
Paket
从F#FAKE
文件构建sqlite
数据库。将nuget包System.Data.SQLite
添加到paket.dependencies
意味着我可以打开System.Data.SQLite
,但是当试图从build.fsx
文件构建数据库时,我遇到以下错误:
(无法加载DLL'SQLite.Interop.DLL'或其依赖项之一:找不到指定的模块。(HRESULT异常:0x8007007E))
SQLite.Interop.dll
位于System.Data.SQLite
的依赖项System.Data.SQLite.Core
的依赖项runtimes\win-x64\native\netstandard2.0
中。尝试使用build.fsx
中的和#r
语句直接引用它失败,错误如下:
打开二进制文件时出错。。。错误的cli头,rva
我不确定应该如何解决所有问题,但从实际的fsproj
运行数据库创建工作正常,因此我相信这与false
或Paket
解决方案有关
如果您熟悉false
,这听起来合理吗?你知道怎么解决这个问题吗
要重现错误,请执行以下操作:
git克隆https://github.com/red-swan/fake-sqlite-problem.git
TeaDrivenDev的上述评论提供了解决方案。我把答案放在这里,这样我就可以结束这个问题了
具体地说,我找到了本机dll
SQLite.Interop.dll
,并将其放入了伪build.fsx
文件所在的根文件夹中。文章TeaDrivenDev
references也有其他方法。我认为这与FAKE或Paket本身无关,而是与FSI中用于运行脚本的DLL发现有关。看一看,你做到了。非常感谢。