【发布时间】:2011-08-24 20:30:57
【问题描述】:
我使用 F# 使用来自另一个项目的数据结构进行了一些快速数据分析。为此,它需要访问该项目;即它需要一个程序集引用 - 但该项目是一个可执行文件。
我已经在 F# 交互中尝试过,它几乎可以工作*;我可以#I 适当的路径和#r 可执行文件和一些支持dll - 但我实际上不能使用它们。无论我做什么,我都无法将引用导入到已编译的 F# 程序中:VS 让我可以很好地添加引用,并且项目正确生成了适当的编译器选项 -r:X:full\path\here.exe,但是没有任何数据结构存在并且编译器抱怨不存在的命名空间;就好像引用不存在一样。该应用程序是 64 位的,这可能是相关的。 64 位 dll 工作正常。
(*) 将 fsi.exe 设置为在 64 位模式下运行后它认为它可以加载它,但实际使用它返回 FS0193:内部错误。
如何从 F# 项目中引用托管的 64 位可执行文件?
【问题讨论】:
-
这又指stackoverflow.com/questions/3536945,看起来确实相关。奇怪的是 dll 似乎可以工作。所以这听起来不太一样。也许他们为dll修复了它?在任何情况下,将其他项目设置为 Any CPU 都是一种很好的解决方法,即使这通常是错误的做法。
-
你能从c#中引用它吗?
-
当然 - 这似乎是 fsi/fsc 中的一些错误,它无法读取 64 位标记程序集的标题(?)。完全相同的代码在 64 位中也可以正常工作,标记为 Any CPU。
标签: f# 64-bit f#-interactive