2016-06-28 94 views
7

此問題與標題中所述完全相同。無法引用F#類庫

我有一個便攜式的F#類庫。我已經創建了一個ASP.NET Core Web應用程序(包括.NET Framework和.NET Core),我嘗試添加對我的F#類庫的引用。

嘗試添加引用給出了一個消息:

下列項目不支持作爲參考:

項目類型是目前的項目不支持,不能(原文如此)引用。

這是非常令人失望的,因爲.NET Core現在處於通用狀態。

在解決此錯誤時是否有任何解決方法?

回答

3

我有一個項目,我開始使用.NET核心Beta8位,從那時起我有一個F#庫,我從一個asp.net核心C#應用程序使用。 (順便說一句here是參考從網絡核心基於控制檯應用程序中的F#lib中的RC2基於最少的樣品)

這是我如何做的:

目前(據我所知)沒有在VS沒有模板創建一個基於coreCLR的F#庫(F#下的PLC模板都是基於Full框架的,但即使它在完整框架上運行,仍然無法從asp.net內核引用),因此您必須使用命令行執行此操作。這是通過:

dotnet new --lang F# 

這會創建一個你好世界coreCLR F#應用程序。您可以通過修改project.json文件將應用程序轉換爲類庫。

如果你有一個VS解決方案,你點擊「添加」 - >「現有項目」,你可以選擇project.json文件。這樣你就可以將它添加到你的解決方案中(並且,也會創建一個xproj文件)。

所以在這一點上,你將在你的解決方案中擁有基於coreCLR的F#項目。我相信通過右鍵單擊asp.net核心項目,並轉到「添加」 - >「參考」 - >項目 - >解決方案,並選擇F#庫,您可以引用它。如果這不起作用,可以手動完成:只需在asp.net核心應用程序的project.json中的「依賴關係」下列出F#項目即可。

如果您的asp.net核心應用在完整框架上運行,仍然需要執行這些步驟。它其實並不重要。

現在壞的部分:

  • 在RTM(週一發佈)的「DOTNET新的」命令創建,因爲一些依賴問題的uncompliable F#的應用程序。這是跟蹤here(標題說「在macOS上」,但它在Windows上是一樣的),一旦解決了這應該沒問題(或者如果你還沒有安裝RTM,並且你有RC2,你也很好)。
  • 智能感知和整個F#的調試和C#不工作(我張貼here
+0

有任何這更近的信息?我試圖讓一個F#類庫在與其他C#asp.net核心項目的解決方案中工作,但沒有任何運氣。在這種情況下,有沒有一個當前正在運行的project.json的好例子? –

+0

@JoeAudette下面是一個更詳細的描述與示例解決方案:http://kalapos.azurewebsites.net/referencing-an-f-library-from-c-on-net-core根據我的知識,是現階段(這就是我今天的工作方式......)。根據路線圖「更好的IDE體驗與F#語言服務上的工作空間支持」將出現在RTM工具中(這實際上意味着我不知道......)https://blogs.msdn.microsoft.com/dotnet/ 2016/07/15/net-core-roadmap/ – gregkalapos

+0

@gegkalapos,謝謝!我遇到的問題是我的F#類庫我想做一個控制器,在project.json中我已經添加了所需的依賴關係,但是VS表示命名空間在我的代碼的這一行中不可用,就像它沒有看到我引用的依賴關係: 打開Microsoft.AspNetCore.Mvc –

1

儘管.NET Core已正式發佈,但ASP.NET Core Web Application中的絕大多數nuget軟件包均已發佈。此外,雖然實體框架標識模型已經被清除,但是當我嘗試實現實體框架遷移時,我嘗試將用戶和角色的關鍵字列從字符串更改爲整數,這引發了一個模糊的錯誤。我知道我可以爲.NET Web應用程序做到這一點,儘管這個過程在某些地方很笨拙。所以現在我已經回到使用.NET Framework Web應用程序。我期待看到ASP.NET Core Web Applications的完全成熟版本。它還沒有準備好,但它看起來非常有前途。