You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

F# FSI运行含#I __SOURCE_DIRECTORY__的fsx文件报FS0010错误如何解决?

F# FSI执行#I __SOURCE_DIRECTORY__报错的原因与解决方案

错误产生原因

__SOURCE_DIRECTORY__是F#编译器内置的特殊字面量,会自动解析为当前脚本所在的目录路径。触发FS0010错误的核心原因是:
在FSI交互模式下,#I路径指令要求后面紧跟的参数必须是用引号包裹的字符串类型,而直接书写的__SOURCE_DIRECTORY__会被FSI识别为未包裹的特殊标识符,不符合交互场景下的语法规则,就会抛出语法错误。如果是单独选中该行代码发送到FSI执行,该错误会更常见,因为此时FSI没有上下文完成该字面量的预解析替换。

解决方案

你可以根据使用场景选择以下任意一种方式解决:

  • 给字面量添加引号包裹,这是兼容性最好的方案,修改代码为:
    #I @"__SOURCE_DIRECTORY__"
    
    前缀@可以避免路径中存在转义字符时解析异常,修改后无论是单独发送到FSI执行,还是完整运行整个脚本都可以正常生效。
  • 如果你仅需要在FSI交互窗口临时设置路径,可以直接写当前目录的绝对路径,示例:
    #I @"C:\Users\XXX\Project\Test"
    
  • 如果你不需要单独调试这行代码,可以直接运行整个.fsx脚本文件,完整运行时编译器会自动预解析__SOURCE_DIRECTORY__字面量,不需要加引号也可以正常执行。

内容的提问来源于stack exchange,提问作者roboleek

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.11 01:33:03