如何将第三方dll引用添加到F#项目中?

14

我正在将第三方dll引用添加到我的F#项目中。我已经在引用中添加了dll,但当我使用它时(即突出显示代码并执行Alt+Ent键),我会收到错误提示:“未定义命名空间或模块'AZROLESLib'。”请问我是否遗漏了什么?


相关。https://dev59.com/vHA85IYBdhLWcg3wBOtO - gradbot
3个回答

15

简言之,你需要使用#r "/path/to/AZROLESLib.dll"来使F# Interactive识别和加载该dll文件。

添加dll引用可以帮助Visual Studio在编译项目时找到正确的库,但它与F# Interactive无关。因此,你需要使用#r指令来指向AZROLESLib.dll。如果VS在突出显示代码方面遇到问题, 则可能需要打开dll文件中的确切模块:

open AZROLESLibModule

如果代码存储在 *.fs 文件中,你可能想区分使用 fsi 和使用 fsc

#if INTERACTIVE
#r "/path/to/AZROLESLib.dll"
#endif

1
谢谢。我正在使用System.Data.SQLite,并添加了#r来指定dll位置,但我没有加上open System.Data.SQLite这一行代码。加上这一行就解决了问题。 - User

0
在我的情况下,我的 F# 项目引用了一个 C# DLL,但是当我执行 "open MyModule" 时,出现了相同的问题,即 "未定义命名空间或模块 'MyModule'"。
解决方案是编辑设置以使用相同的框架(一个使用 4.5,另一个使用 4.0)。

0

对于某些东西,您可以直接按名称调用它们,而无需路径

#r "EnvDte"

例如在vs2013中有效


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接