【问题标题】:F# interactive: Reference a project in currently open solutionF# 交互式:在当前打开的解决方案中引用项目
【发布时间】:2015-05-12 02:11:20
【问题描述】:

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

【问题讨论】:

    标签: f# f#-interactive


    【解决方案1】:

    我的 .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,需要先选择文件的内容。
    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

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

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

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

      目前,F# Interactive 确实与 Visual Studio 中的项目系统断开了连接。我认为更紧密的集成会非常有用(但可能很难提供)。

      【讨论】:

      • 嗯,是的,我认为在 IDE 中拥有 F# 交互式窗口只是获得一些 IDE 的上下文。希望有人能对此有所了解?
      • +1 目前,F# Interactive 确实与 Visual Studio 中的项目系统脱节。
      • 我在 F# 项目的解决方案资源管理器中看到了 send project output to F# interactive 菜单项,但在 C# 项目中却没有 =(
      【解决方案4】:

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

      【讨论】:

      • 到目前为止,这是我找到的最佳答案。非常感谢您的提示!
      【解决方案5】:

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

      【讨论】:

        【解决方案6】:

        如果 Visual Studio F# 交互选项菜单允许规定调用可以通过“--use:”指令传递给 FSI 的启动脚本,那就太好了。然后可以将此类脚本传递给解决方案元数据,从而使环境更加集成,例如加载最新的项目输出。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-11-10
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-06-13
          • 1970-01-01
          相关资源
          最近更新 更多