3

F#で記述されたコントローラーを使用してVisual StudioMVCWebプロジェクトのプロジェクトシステムを構築しています。かなりかっこいいです。アプリをビルドして実行できますが、FSharp言語サービスに問題があります。

エディターでは、構文の色付けと診断が適切に表示されます。1つの問題があります-それはプロジェクト参照を取得しません。ビルド中にそれらを取得してプロジェクトを正常にビルドしますが、画面には、参照されているアセンブリ/プロジェクトのオブジェクト/名前空間が未解決として表示されます。

ここにいる誰かがF#言語サービスとの統合についてある程度の知識を持っている場合-それを機能させるのを手伝ってください

トーマスへの返答:

F#コントローラーのコードはプロジェクトファイルにあり、すでに述べたように、コンパイルして実行できます。もともと私たちはF#コードを別のプロジェクトに保管していましたが、この余分な複雑さを取り除きたいという願望がこのプロジェクトのきっかけとなりました。ビストロMVCですが、ASP.MVCではありません。

編集

現在、BistroMVCは、 F#プロジェクトエクステンダーに基づく最新バージョンのBistroDesignerでこの問題を解決しています。

4

2 に答える 2

1

F# のソース コードを Web プロジェクトの一部として保持していますか? これが ASP.NET MVC でも可能かどうかはわかりませんが、ASP.NET WebForms では可能でした。WebForms プロジェクトでは、うまく機能しませんでした (F# がプロジェクトのコンテキストを認識していなかったため)。次のようなハッキーな #if でこれを克服することは可能だったと思います:

#if EDITING
#r "Your.Referenced.Library.dll"
#endif

これはエディターへのヒ​​ントとしてのみ機能します...ただし、(可能であれば) 別の F# プロジェクトで F# コントローラーを作成することをお勧めします。その場合、問題は発生しないはずです (少なくとも、そうであることを願っています!)。

于 2010-01-16T13:10:46.483 に答える
0

あなたが何をしているのか、もっと詳しく説明していただけますか?これは「フレーバー」ですか、それとも新しいプロジェクト システムですか。「プロジェクト環境」の他の側面は取り上げられていますか? たとえば、次の F# コードがあるとします。

#if DEBUG
let x = 3
#else
let x = 4
#endif

VS ソリューションを Debug から Release に変更すると、カラーリングは変わりますか?

(率直に言って、F# 言語サービスをユーザー定義のプロジェクト システムに完全に統合できるかどうかはわかりません。さらに議論が必要な場合は、fsbugs@microsoft.com に電子メールを送信してください。そこで返信します。)

于 2010-01-15T23:09:57.867 に答える