无法引用F#类库

这个问题与标题中描述的完全相同。

我有一个便携式F#类库。 我已经创建了一个ASP.NET Core Web应用程序(包括.NET Framework和.NET Core),我尝试添加对我的F#类库的引用。

尝试添加引用给出了一条消息:

以下项目不支持作为参考:

项目类型不受当前项目支持,不能被引用。

这是非常令人失望的,因为.NET Core现在处于通用状态。

有没有解决这个问题时的解决方法?


我有一个项目,我开始使用.net核心的beta8位,从那时起我有一个F#库,我使用的是一个asp.net核心C#应用程序。 (顺便提一句,这是一个基于RC2的基于网络核心控制台应用程序的基于F#lib的最小样本)

这是我做到的:

目前(据我所知)VS中没有模板来创建基于coreCLR的F#库(F#下的PLC模板都是基于Full框架的,但即使它运行在完整框架上,仍然无法从asp.net核心引用),所以你必须用命令行来做到这一点。 这通过:

dotnet new --lang F#

这会为您创建一个hello world coreCLR F#应用程序。 您可以通过修改project.json文件将应用程序转换为类库。

如果你有一个VS解决方案,你点击“添加” - >“现有项目”,你可以选择project.json文件。 这样你就可以将它添加到你的解决方案中(并且,也会创建一个xproj文件)。

所以在这一点上,您将在您的解决方案中拥有基于coreCLR的F#项目。 我相信通过右键单击asp.net核心项目,并转到“添加” - >“参考” - >项目 - >解决方案,并选择F#库,你可以引用它。 如果这不起作用,可以手动完成:只需在asp.net核心应用程序的project.json中的“依赖关系”下列出F#项目即可。

如果您的asp.net核心应用程序运行在完整框架上,仍然需要执行这些步骤。 它其实并不重要。

现在的不好的部分:

  • 在RTM(星期一发布)中,由于一些依赖性问题,“dotnet new”命令会创建一个不兼容的F#应用程序。 这在这里被追踪(标题为“在macOS上”,但在Windows上是一样的),一旦它解决了,这应该没问题(或者如果你还没有安装RTM,并且你有RC2,那么你也很好)。
  • 智能感知和跨F#和C#调试不起作用(我在这里发布)

  • 虽然.NET Core已经正式发布,但ASP.NET Core Web Application中的绝大多数nuget包都在预发布中。 此外,虽然实体框架标识模型已经被清除,但是当我尝试实现实体框架迁移时,我尝试将用户和角色的关键列从字符串更改为整数,这引发了一个模糊的错误。 我知道我可以为.NET Web应用程序做到这一点,尽管这个过程在某些地方很笨拙。 所以现在我已经回到使用.NET Framework Web应用程序。 我期待看到ASP.NET Core Web Applications的完全成熟版本。 它还没有准备好,但它看起来非常有前途。

    链接地址: http://www.djcxy.com/p/92333.html

    上一篇: Can't reference an F# class library

    下一篇: Line Profiling inner function with Cython