【问题标题】:Unable to use namespace from project after including reference? F# C#包含参考后无法使用项目中的命名空间? F# C#
【发布时间】:2018-01-16 23:30:29
【问题描述】:

我正在关注 Tomas Petricek 关于复数视觉的指南。我正在尝试制作一个 C# 单元测试项目来测试 F# 库中的一些方法,但是即使在 C# 项目中添加对 F# 项目的引用后,我也无法使用任何方法,因为它们无法识别并且何时尝试使用 F# 项目中的命名空间,它是一个未知的命名空间。

此类问题的大多数解决方案似乎都针对不同的框架,但是,我在两个项目中都针对 4.5.2。

可能出了什么问题?

【问题讨论】:

  • 要检查的一件事是确保 F# 项目编译时没有错误 - 如果无法编译,C# 项目将看不到任何内容。如果不是这样,你能以某种方式分享你的项目吗?如果没有更多信息,很难看出是什么原因造成的......
  • 哈哈,你说得对,我还没有构建 F# 项目。愚蠢的错误。我还在磨练我的技能!谢谢托马斯,你是我的英雄哈哈!
  • 我很高兴这有帮助!我把它变成了一个正确的答案,并详细说明了它是如何工作的。

标签: c# f#


【解决方案1】:

要检查的一件事是确保 F# 项目已编译并且没有错误。

当 C# 项目引用 F# 库时,C# 编译器将查看生成的 dll 文件并根据已编译的库提供自动完成功能。这与从 C# 项目中引用 C# 库时不同,因为在这种情况下,自动完成基于 Visual Studio 在后台执行的检查。

这意味着,每当您更改 F# 库的公共 API 时,都需要重新编译它以确保 C# 项目看到最新版本。

【讨论】:

    【解决方案2】:

    对我来说,项目构建没有问题,尽管有多个dotnet clean; dotnet build;,IDE 仍然在抱怨。它说我新添加的引用项目的模块在测试项目中不可用。

    最后重启 VsCode 就成功了。

    我正在使用带碘的 VsCode 1.63,两个项目都是 F# 项目。

    【讨论】:

      猜你喜欢
      • 2021-05-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-08
      • 1970-01-01
      • 2013-11-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多