【发布时间】:2015-05-12 02:11:20
【问题描述】:
我想将 F# 交互式控制台与 Visual Studio 2010 中当前打开的解决方案中的项目一起使用。是否有一种快速简便的方法可以在 F# 交互式控制台中添加引用以引用当前打开的解决方案中的项目?
【问题讨论】:
标签: f# f#-interactive
我想将 F# 交互式控制台与 Visual Studio 2010 中当前打开的解决方案中的项目一起使用。是否有一种快速简便的方法可以在 F# 交互式控制台中添加引用以引用当前打开的解决方案中的项目?
【问题讨论】:
标签: f# f#-interactive
我的 .fs 文件顶部有这样的行:
#if INTERACTIVE
#r @"C:\path\to\some.dll"
#I @"C:\Users\bford\path\to\a\project\in\this\solution\bin\Debug"
#r "Project.name"
#endif
Alt-Enter 现在让我进入 fsi 并加载所有必需的东西
【讨论】:
Ctrl+Shift+Enter,需要先选择文件的内容。
如果它是您经常引用的项目,您可以在工具->选项->F# 工具->F# 交互选项下添加对 FSI 命令行的“始终”引用。 添加一个 -r 开关,如:
-r "C:\Users\yaddayadda\MyDll.dll"
【讨论】:
我认为在解决方案中没有任何直接引用项目的方法。我能想到的最好方法是使用 #r 指令将 FSX 文件添加到您的项目中:
#r @"bin\Debug\YourProject.dll"
然后,您至少可以通过在 Visual Studio 中按 Alt+Enter 来引用已编译的 DLL 文件。据我所知,您不能引用该项目 - 您只能引用一个程序集。
目前,F# Interactive 确实与 Visual Studio 中的项目系统断开了连接。我认为更紧密的集成会非常有用(但可能很难提供)。
【讨论】:
send project output to F# interactive 菜单项,但在 C# 项目中却没有 =(
现在在 Visual Studio 2013 中,您可以通过右键单击引用的 dll 并单击“发送到 F# 交互式”来添加对 F# 交互式窗口的引用。
【讨论】:
我认为引用当前项目应该很简单,获取它包含的引用列表,然后可选地为正在创建的交互式会话生成一个#r(可能还有#i)语句列表,引用 dll项目本身也是如此。
例如:“fsi /i:pathOfLib1 /r:lib1 /i:pathOfLib2 /r:lib2 ....”
PS:根据 MSDN 文章,库名称似乎不能包含其路径前缀,因此分为 /i 和 /i :http://msdn.microsoft.com/en-us/library/dd233172%28v=vs.100%29.aspx
【讨论】:
如果 Visual Studio F# 交互选项菜单允许规定调用可以通过“--use:”指令传递给 FSI 的启动脚本,那就太好了。然后可以将此类脚本传递给解决方案元数据,从而使环境更加集成,例如加载最新的项目输出。
【讨论】: