11

ASP.NET 以外のプロジェクトで Intellisense を razor ビューで動作させようとしており、VisualStudio の Razor エディターと BuildProviders の関係を理解し​​たいと考えています。

背景として、ビュー エンジンに Razor を使用する Manos (モノ Web サーバー) の上にフレームワークを作成しています。その部分は完全に機能していますが、VS の Intellisense は機能せず、プロジェクトの出力 DLL が配置されている場所に応じて、不明な型から未登録のビルド プロバイダーまでさまざまなエラーが発生します。

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

私はすでにこれらの記事を読みました:

独自の BuildProvider を作成する必要があるようですが、ビルド プロバイダーと Razor IntelliSense の関係を説明するドキュメントが見つかりません。

4

2 に答える 2

1

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

忠実度の高いIntelliSenseを取得するための私の唯一の提案は、ちょっとしたスーパーハックです。クラスライブラリではなく、アプリケーションをWebアプリケーションプロジェクトにすることができます。WAPは、実際にはVSがWebサイトをホストできる単なるクラスライブラリです。余分なもの(Global.asax、web.configなど)をすべて削除すると、探しているものが正確に得られる可能性があります。これは回避策であり、少し手間がかかりますが、試してみてください。うまくいくかもしれません:)

于 2011-08-07T05:00:04.643 に答える
1

Razor intellisense は、現在のところせいぜい不安定です。ただし、VS SP1 を使用している場合は、わずかに優れています。web.config の回避策 (3 番目のリンクで指摘されているように) は、拡張子が cshtml である限り、クラス ライブラリで機能します (vbhtml を試していないため、確かなことは言えません)。

こちらもご覧ください: http://razorpad.codeplex.com/ LinqPad と同様に、これにより事前にカミソリ コードをテストできます。

于 2011-06-29T03:34:52.973 に答える