2011-06-28 29 views
11

Estoy tratando de hacer que Intellisense funcione para las vistas de la maquinilla de afeitar en un proyecto que no sea ASP.NET y me gustaría entender la relación entre el editor Razor de VisualStudio y BuildProviders.Visual Studio, Razor, BuildProviders e Intellisense

Para el fondo, estoy escribiendo un marco sobre Manos (servidor web mono) que usa Razor para su motor de visualización. Tengo esa parte funcionando perfectamente, pero Intellisense en VS no funciona con un rango de errores desde tipos desconocidos hasta proveedores de compilación no registrados, dependiendo de dónde se coloquen las DLL de salida del proyecto.

Mi proyecto es una .NET Class Library, con archivos .cshtml (acción de compilación ninguna). La clase de vista básica de la máquina de afeitar se define en un conjunto separado (fuera del proyecto) que podría registrarse en el GAC, pero actualmente no lo está.

ya he leído estos artículos:

suena como tengo que escribir mi propia BuildProvider, pero puedo' t encuentra cualquier documentación que explique la relación entre un proveedor de compilación y razis intellisense.

+0

Así que entiendo que trataste de colocar un web.config de otro proyecto de MVC en tu proyecto de biblioteca de clase y no funcionó? ¿Qué web.config tomaste: el de la raíz o el de la subcarpeta Views? –

Respuesta

1

Razor intellisense es escamoso en el mejor de los casos actualmente. Sin embargo, si está usando VS SP1, es un poco mejor. La solución web.config (como se indica en su tercer enlace) funciona para mí en una biblioteca de clases, siempre que la extensión sea cshtml (no he probado vbhtml, por lo que no puedo asegurarlo).

También vea aquí: http://razorpad.codeplex.com/ Similar a LinqPad, esto le permitirá probar su código de afeitar con anticipación.

1

El editor Razor está bastante relacionado con el tiempo de ejecución de ASP.Net, de hecho, ejecuta ASP.Net en segundo plano para recopilar la información de tiempo de ejecución necesaria.

Mi única sugerencia para obtener IntelliSense de fidelidad verdadera es un poco super-hack. En lugar de una Biblioteca de clases, puede hacer que su aplicación sea un Proyecto de aplicación web. Un WAP es en realidad una biblioteca de clases de la cual VS puede alojar un sitio web. si elimina TODAS las cosas adicionales (Global.asax, web.config, etc.) puede obtener exactamente lo que está buscando. Es una solución, y un poco exagerada pero dale una oportunidad, puede funcionar :)

Cuestiones relacionadas