2011-06-28 22 views
11

Visual StudioのRazorエディタとBuildProvidersの関係を理解し​​たいと思っていますが、Intellisenseを非AS.NETプロジェクトのひらめきビューで使用しようとしています。Visual Studio、Razor、BuildProviders、Intellisense

バックグラウンドでは、ビューエンジンにRazorを使用するManos(モノWebサーバー)の上にフレームワークを作成しています。私はその部分を完璧に動作させていますが、VSのIntellisenseは、プロジェクトの出力DLLがどこに置かれているかに応じて、未知の型から未登録のビルドプロバイダまでさまざまなエラーを出すことができません。

私のプロジェクトは、.cshtmlファイル(ビルドアクションなし)を使用した.NETクラスライブラリです。ベースカミソリビュークラスは、GACに登録できる別のアセンブリ(プロジェクト外)で定義されていますが、現在はそうではありません。

私はすでに、これらの記事を読んだ:

は、「私は私自身のBuildProviderを記述する必要があるような音が、することができます関係を説明する文書を見つけるビルドプロバイダと剃刀のインテリセンスの間に

+0

他のMVCプロジェクトからクラスライブラリプロジェクトにweb.configをドロップしようとしましたそれは動作しませんでしたか?どのweb.configを実行しましたか?ルートからのものか、Viewsサブフォルダからのものか –

答えて

1

現在のところ、面倒なインテリセンスは薄いです。しかし、あなたがVS SP1を使用している場合、それは少し良い。 web.configの回避策(3番目のリンクで指摘されているように)は、拡張機能がcshtmlである限り(vbhtmlを試していないので、確かに言えません)、クラスライブラリで私のために働きます。

こちらもご覧ください:http://razorpad.codeplex.com/ LinqPadに似ています。これにより、事前に剃刀コードをテストすることができます。

1

RazorエディタはASP.Netランタイムにかなり関わっています。実際には、必要な実行時情報を収集するためにASP.Netをバックグラウンドで実行しています。

本当に忠実なIntelliSenseを取得するための私の唯一の提案は、超ハックのビットです。クラスライブラリではなく、アプリケーションをWebアプリケーションプロジェクトにすることができます。 WAPは実際にVSがウェブサイトをホストできるクラスライブラリです。余計なもの(Global.asax、web.configなど)をすべて削除すると、探しているものを正確に得ることができます。これは回避策ですが、それでも少しばかりですが、ちょうどうまくいくかもしれません:)

関連する問題