此问题与标题中描述的完全相同。
我有一个便携式F#类库。我创建了一个ASP.NET核心Web应用程序(包括.NET Framework和.NET Core),我试图在其中添加对我的F#类库的引用。
尝试添加引用会显示一条消息:
不支持以下项目作为参考:
当前项目不支持项目类型,不能(sic)引用项目类型。
这非常令人失望,因为.NET Core现在处于普遍可用性状态。
在解决此错误时是否有任何变通方法?
答案 0 :(得分:4)
我有一个项目,我从.net核心的Beta8位开始,从那时起我就有了一个F#库,我在asp.net核心C#app中使用它。 (btw here是一个基于RC2的最小样本,用于从基于网络核心的控制台应用程序引用F#lib)
我是这样做的:
目前(根据我的知识)VS中没有模板来创建基于coreCLR的F#库(F#下的PLC模板都是基于完全框架的,但即使它运行,你仍然无法从asp.net核心引用在完整的框架上),所以你必须使用命令行执行此操作。这可以通过以下方式完成:
dotnet new --lang F#
这会为您创建一个hello world coreCLR F#app。您可以通过修改project.json文件将应用程序转换为类库。
如果您有VS解决方案并且点击“添加” - > “现有项目”可以选择project.json文件。这样就可以将它添加到您的解决方案中(顺便说一下,还会创建一个xproj文件)。
所以此时您将在解决方案中拥有基于coreCLR的F#项目。我相信通过右键单击asp.net核心项目并转到“添加” - > “参考” - >项目 - >解决方案并选择您已经可以参考的F#库。如果这不起作用,您可以手动执行:只需在asp.net核心应用程序的project.json中的“dependencies”下列出F#项目。
如果您的asp.net核心应用程序在完整框架上运行,仍需要执行这些步骤。它实际上并不重要。
现在不好的部分:
答案 1 :(得分:1)
虽然.NET Core已正式发布,但ASP.NET Core Web Application中的绝大多数nuget包都在预发行版中。此外,虽然实体框架身份模型已被清理,但是当我尝试实现Entity Framework迁移时,我尝试将用户和角色的键列从字符串更改为int会产生一个模糊的错误。我知道我可以为.NET Web应用程序执行此操作,即使该过程在某些地方很笨拙。所以现在我又回到了使用.NET Framework Web应用程序。我期待看到一个完全成熟的ASP.NET核心Web应用程序版本。它没有准备好,但看起来很有希望。