2016-06-28 5 views
7

この問題は、タイトルと同じです。F#クラスライブラリを参照できません

私は移植可能なF#クラスライブラリを持っています。私はASP.NET Core Webアプリケーション(.NET Frameworkと.NET Coreの両方)を作成しました。そこからF#クラスライブラリへの参照を追加しようとしました。参照を追加しようと

メッセージを与える:

以下のプロジェクトを参照としてサポートされていません。

プロジェクトの種類は、現在のプロジェクトによってサポートされていないと(SIC)を参照することができません。

これは、.NET Coreが現在一般公開されているため、これは非常に残念です。

このバグが解決されたときの回避策はありますか?

答えて

3

私はBeta8の.netコアで始まり、その後私はasp.netコアのC#アプリケーションから使用するF#ライブラリを持っているプロジェクトを持っています。 (ところでhereネットコアベースのコンソールアプリからのF#のLIBを参照するためのRC2ベース最小限のサンプルです)

ここでは、私はそれをやった方法です:

現在(私の知識に従って)VSにはテンプレートがありません(F#のPLCテンプレートはすべてフルフレームワークベースですが、完全なフレームワークで実行してもasp.netコアから参照することはできません)、コマンドラインでこれを行う必要があります。これは次のように行われます:

dotnet new --lang F# 

これは、あなたにhello world coreCLR F#appを作成します。 project.jsonファイルを変更することで、アプリをクラスライブラリにすることができます。

VSソリューションをお持ちの場合、[追加] - [既存のプロジェクト]をクリックすると、project.jsonファイルを選択できます。こうすることで、あなたのソリューションに追加することができます(さらに、xprojファイルも作成されます)。

この時点で、ソリューションにはcoreCLRベースのF#プロジェクトがあります。私はasp.netコアプロジェクトを右クリックして "Add" - > "Reference" - > Projects-> Solutionsに進み、既に参照できるF#ライブラリを選択すると信じています。これがうまくいかない場合、手動で行うことができます:asp.netコアアプリケーションのproject.jsonの "依存関係"の下にF#プロジェクトをリストするだけです。

asp.netコアアプリケーションがフルフレームワークで実行されている場合でも、これらの手順を実行する必要があります。実際にはそれほど重要ではありません。

今悪い部分:(月曜日にリリース)RTMで

  • 「DOTNET新しい」コマンドがあるため、いくつかの依存関係の問題により、uncompliable F#のアプリを作成します。これはトラックhere(タイトルは "on macOS"ですが、Windowsでは同じです)と解決されるとすぐにこれはうまくいくはずです(または、まだRTMをインストールしておらず、RC2もあります)。
  • インテリセンスとデバッグF#の間とC#は動作しません(私はそれhereを掲載)
+0

は、この上の任意のより多くの最近の情報はありますか?私はF#クラスライブラリを他のC#asp.netコアプロジェクトのソリューションで動作させようとしていますが、幸運はありません。このシナリオでは現在作業中のプロジェクトの良い例がありますか? –

+0

@JoeAudetteここでは、サンプルソリューションの詳細な説明です:http://kalapos.azurewebsites.net/referencing-an-f-library-from-c-on-net-core私の知識によると、現在の段階です(そしてそれは私が今日働く仕組みです...)。ロードマップによると、「F#言語サービスでのワークスペースサポートのIDE経験が向上しました」というのは、RTMツール(私には分かりませんが..)https://blogs.msdn.microsoft.com/dotnet/ 2016/07/15/net-core-roadmap/ – gregkalapos

+0

@gegkalapos、ありがとう!私が持っている問題は、私が必要とする依存関係を追加しましたが、project.jsonでコントローラを作成したいF#クラスライブラリですが、VSはネームスペースが自分のコードでこの行にないと言います。私が参照している依存関係: open Microsoft.AspNetCore.Mvc –

1

.NET Coreは公式にリリースされていますが、ASP.NET Core Webアプリケーションのナゲットパッケージの大部分はプレリリース版です。さらに、エンティティフレームワークのアイデンティティモデルがクリーンアップされましたが、ユーザーとロールのキー列を文字列からintに変更しようとすると、Entity Frameworkの移行を実装しようとしたときに曖昧なエラーが発生しました。私は.NET Webアプリケーションのためにそれを行うことができることを知っています。だから私は.NET Framework Webアプリケーションの使用に戻りました。私は、完全に成熟したASP.NET Core Webアプリケーションのバージョンを見ることを楽しみにしています。それは準備ができていませんが、非常に有望です。

関連する問題