【问题标题】:The visual studio F# interactive window keeps not opening in current directoryVisual Studio F# 交互式窗口一直没有在当前目录中打开
【发布时间】:2020-03-09 11:57:25
【问题描述】:

所以我想在 Visual Studio 的交互式窗口中工作一点,看看一些 F#。 现在查看>其他窗口>F# 交互

为了加载我的文件,然后输入

>#load "Distance.fs";;

值得一提的是,Distance.fs 是我当前所在的文件。 但是现在,我收到此错误:

它看起来一直在错误的目录中查找,并且在不同的文件和项目中一直这样做。为什么会这样?有什么方法可以配置 VS 始终在当前打开的目录中打开交互式窗口

【问题讨论】:

  • 当您将该行写入脚本文件然后发送到使用 Alt-Enter 进行交互时,是否会发生这种情况?我建议您始终这样做,并且从不直接输入 FSI。这有很多好处,包括自动完成、实时类型检查、语法突出显示、不必输入 ;; 等。
  • 当我在 ide 中打开文件并通过工具栏打开交互式窗口时会发生这种情况。我不太清楚“将行写入脚本文件”是什么意思
  • 创建一个 FSX 文件,在其中写入一些代码,选择代码并按 Alt-Enter。这会将代码发送到 FSI,就像您在那里键入一样。或者,如果您不选择任何代码,它只会发送当前行。
  • 这是一个演示 VS Code 的视频,忽略 IDE 特定的东西:youtube.com/watch?v=QeZ5eXWBbsI
  • 谢谢,但我已经可以在 vs 代码中做到这一点,只是 vs 不起作用

标签: visual-studio f# f#-interactive


【解决方案1】:

FSI 将其当前目录默认为任何 %TEMP% 并且只需要一点帮助。创建一个临时脚本(如@TheQuickBrownFox 建议的那样),并将您的#load 语句放在那里。在此之上,添加

open System

Environment.CurrentDirectory <- __SOURCE_DIRECTORY__

突出显示这两行并按 Alt-Enter 告诉 FSI 更改到脚本的当前目录,然后您的 #load 语句应该可以工作(如果需要,调整您的路径,例如,如果您创建一个单独的脚本文件夹,那么也许你现在需要#load "../Distance.fs" 等。

【讨论】:

  • 谢谢,有没有关于如何创建 sratch 脚本的指南?
  • 只需将 F# 脚本添加到您的项目中。当我说“scratch”时,我的意思是你可能并不真正关心你放在那里的任何东西,你只是使用脚本将东西发送到 FSI。 (JetBrains Rider 实际上有一个存放“临时”内容的地方,因此您不必为是否应该将这些类型的脚本检查到源代码控制中而苦恼)。
猜你喜欢
  • 2015-09-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-02-28
  • 1970-01-01
相关资源
最近更新 更多