F#interactive:在当前打开的解决方案中引用项目

时间:2010-06-06 02:00:09

标签: f# f#-interactive

我想将F#交互式控制台与Visual Studio 2010中当前打开的解决方案中的项目一起使用。是否有一种快速简便的方法在F#交互式控制台中添加引用以引用当前打开的解决方案中的项目?

6 个答案:

答案 0 :(得分:28)

我的.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并加载了所有必需的东西

答案 1 :(得分:19)

我认为没有任何直接方法可以在解决方案中引用项目。我能想到的最好的方法是使用#r指令在项目的某处添加FSX文件:

#r @"bin\Debug\YourProject.dll"

然后,您至少可以通过在Visual Studio中按Alt + Enter来引用已编译的DLL文件。据我所知,你不能引用该项目 - 你只能引用一个程序集。

目前,F#Interactive实际上与Visual Studio中的项目系统断开连接。我认为更紧密的整合将非常有用(但可能难以提供)。

答案 2 :(得分:19)

如果它是您经常引用的项目,您可以在工具 - >选项 - > F#工具 - > F#交互选项下添加对FSI命令行的“始终”引用。 添加-r开关,如:

-r "C:\Users\yaddayadda\MyDll.dll"

答案 3 :(得分:16)

现在,在Visual Studio 2013中,您可以通过右键单击引用的dll并单击"发送到F#interactive"来添加对F#交互式窗口的引用。

答案 4 :(得分:1)

我认为应该直接引用当前项目,获取它包含的引用列表,然后可选地为正在创建的交互式会话生成#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

答案 5 :(得分:1)

如果Visual Studio F#Interactive Options菜单允许启动脚本的规定,调用可以通过“--use:”指令传递给FSI,那将是很好的。然后可以传递这样的脚本解决方案元数据,以允许更加集成环境,例如加载最新的项目输出。