Sto utilizzando Razor Engine from CodePlex in un'applicazione console. Quando eseguo la modalità di debug in VS 2010 IDE, tutto funziona. Dalla shell, anche un semplice 2-liner nell'esempio nella pagina CodePlex sopra non riesce. Quindi non penso sia il codice. Il messaggio di eccezione è come generico in quanto può essere:Utilizzo di Razor Engine in un'applicazione console
RazorEngine.Templating.TemplateCompilationException: Unable to compile template.
tutte le DLL cui si fa riferimento (nella sezione Riferimenti) ci sono nella directory di lavoro insieme con il .exe che è l'applicazione console stessa. Io non metto l'intero elenco qui, ma qui ci sono alcuni che penso sono rilevanti: System.Web, System.Web.Mvc, System.Web.Razor, RazorEngine, ecc ho don Penso che DLL come System, System.Xml, ecc. abbiano anche bisogno di essere lì, ma per eliminare ogni sorpresa, le ho copiate comunque. Il punto è che qualunque cosa si trovi nella sezione Riferimenti viene copiata nella directory di lavoro in cui si trova l'exe. La sorpresa è che non funziona ancora. Come posso rintracciare ciò che manca o semplicemente far funzionare questa cosa?
Modifica Ho appena creato un'app per console bare bone per dimostrare il mio punto. Ecco l'intero programma. Come ho detto, funziona bene all'interno dell'IDE, non nella 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();
}
}
}