我使用F#使用其他项目的数据结构进行快速数据分析。为此,它需要访问该项目;即它需要一个程序集引用 - 但该项目是可执行文件。
我在F#互动中试过这个,它几乎可以工作*;我可以#I
适当的路径和#r
可执行文件和一些支持dll - 但我实际上不能使用em。无论我做什么,我都无法获得编译的F#程序的引用:VS允许我添加一个引用就好了,项目正确生成了相应的编译器选项-r:X:full\path\here.exe
,但没有一个数据结构是现在和编译器抱怨不存在的命名空间;就好像引用不存在一样。该应用程序是64位,这可能是相关的。 64位dll的工作正常。
(*)将fsi.exe设置为在64位模式下运行后,它认为可以加载它,但实际使用它会返回FS0193:内部错误。
如何从F#项目引用托管的64位可执行文件?
答案 0 :(得分:0)
对于同样问题的其他人:作为一种解决方法,我现在正在将可执行文件编译为任何CPU(将以64位模式执行,因此行为相同)。这允许FSI和编译器引用它。根据评论中提到的问题,这似乎是一个已知的错误,希望有一天能够修复。