【问题标题】:Why does intellisense fail on my F# script?为什么智能感知在我的 F# 脚本上失败?
【发布时间】:2018-01-08 04:35:56
【问题描述】:

我一直在构建一个库,以便在工作中与我的一个数据库进行交互,并且一切正常。但是当我打开一个新脚本并开始使用该库时,当我尝试在数据库上使用查询表达式时,它总是会发疯。当我将它们发送到 F# 交互时它们工作,但智能感知失败,在所有内容下绘制红线。为什么是这样?我希望我自己的 dll 成为用户唯一需要为脚本引用的东西。

System.Data.Linq 是我的 dll 文件中的一个引用,我已将其 Copy Local 属性设置为 True 无济于事。除此之外,我一点也不知道可能出了什么问题。

【问题讨论】:

    标签: dll f# intellisense query-expressions


    【解决方案1】:

    您在屏幕截图中显示的显然是一个 F# 脚本(.fsx 文件)。由于试图访问该表的代码在脚本文件中,因此需要引用System.Data.Linq 的是脚本文件。您的 AIXSupport.dll 库有引用这一事实并没有帮助:引用不会像那样“转移”。

    只需在脚本开头添加这个:

    #r "System.Data.Linq"
    

    【讨论】:

    • 是否可以在我自己的 dll 中编译 System.Data.Linq 这样就没有必要了?
    • 是的,有相应的工具。看这里:peteris.rocks/blog/merging-net-assemblies-with-msbuild
    • @jks612 您还可以在您的 dll 旁边分发包含所有预期引用的 .fsx。然后用户将#load “your.fsx” 而不是#r “your.dll”
    猜你喜欢
    • 2012-10-16
    • 2013-04-11
    • 1970-01-01
    • 2020-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-19
    相关资源
    最近更新 更多