我正在尝试让Intellisense在非ASP.NET项目中为剃刀视图工作,并希望了解VisualStudio的Razor编辑器和BuildProviders之间的关系。
对于后台,我正在Manos(单声道Web服务器)上编写一个框架,该框架使用Razor作为其视图引擎。我已经完成了那部分工作,但VS中的Intellisense不能提供从未知类型到未注册的构建提供程序的一系列错误,具体取决于项目的输出DLL的放置位置。
我的项目是.NET类库,带有.cshtml文件(构建操作无)。基础剃刀视图类在单独的程序集(项目外部)中定义,该程序集可以在GAC中注册,但目前不在。
我已经读过这些文章了:
听起来我需要编写自己的BuildProvider,但找不到任何解释构建提供程序和razor intellisense之间关系的文档。
答案 0 :(得分:1)
Razor intellisense目前最好是片状的。但是,如果您使用的是VS SP1,则稍微好一些。 web.config解决方法(如你的第三个链接中所指出的)在类库中适用于我,只要扩展名是cshtml(没有尝试过vbhtml,所以不能肯定地说)。
另请看这里:http://razorpad.codeplex.com/ 与LinqPad类似,这将允许您提前测试剃刀代码。
答案 1 :(得分:1)
Razor编辑器与ASP.Net运行时非常相关,实际上它实际上是在后台运行ASP.Net以收集必要的运行时信息。
我获得真正保真智能感知的唯一建议是有点超级黑客。您可以将应用程序设置为Web应用程序项目,而不是类库。 WAP实际上只是VS可以托管网站的类库。如果你清理掉所有额外的东西(Global.asax,web.config等),你可能会得到你正在寻找的东西。这是一个解决方法,并且稍微有点延伸但是给它一个镜头,它可能只是起作用:)