2011-12-03 18 views
6

Uso el Razor Engine from CodePlex en una aplicación de consola. Cuando me ejecuto en modo de depuración en VS 2010 IDE, todo funciona. Desde el shell, incluso un simple 2-liner en el ejemplo de la página CodePlex anterior falla. Entonces, no creo que sea el código. El mensaje de excepción es tan genérico como puede ser:Uso de Razor Engine en una aplicación de consola

RazorEngine.Templating.TemplateCompilationException: Unable to compile template. 

Todas las DLL que se hace referencia (en la sección Referencias) hay en el directorio de trabajo junto con el .exe que es la aplicación de consola en sí. No voy a poner toda la lista aquí, pero aquí hay algunas que me parecen relevantes: System.Web, System.Web.Mvc, System.Web.Razor, RazorEngine, etc. Don 't pensar DLLs como Sistema, System.Xml, etc incluso tienen que estar allí, pero para eliminar cualquier sorpresa, los copié allí de todos modos. El punto es que lo que está en la sección de Referencias se copia en el directorio de trabajo donde está el ejecutable. La sorpresa es que todavía no funciona. ¿Cómo puedo rastrear lo que falta o simplemente hacer que esto funcione?

Editar Acabo de crear una aplicación de consola barebone para demostrar mi punto. Aquí está todo el programa. Como mencioné, funciona bien desde dentro del IDE, no en el shell.

using System; 
using RazorEngine; 

namespace RazorEngineTest 
{ 
    public class Program 
    { 
     public static void Main(string[] args) 
     {    
      string template = "Hello @Model.Name! Welcome to Razor!"; 
      string result = Razor.Parse(template, new { Name = "World" }); 
      Console.WriteLine(result); 
      Console.ReadLine(); 
     } 
    } 
} 

Respuesta

Cuestiones relacionadas