我在控制台应用程序中使用Razor Engine from CodePlex。当我在VS 2010 IDE中以调试模式运行时,一切正常。从shell开始,即使是上面CodePlex页面上的示例中的简单2-liner也会失败。所以我不认为这是代码。异常消息尽可能通用:
RazorEngine.Templating.TemplateCompilationException: Unable to compile template.
所引用的所有DLL(在References部分中)都与工作目录一起存在,而.exe是控制台应用程序本身。我不会把整个列表放在这里,但是我认为这些是相关的: System.Web , System.Web.Mvc , System.Web .Razor , RazorEngine 等等。我认为系统, System.Xml 等DLL甚至不需要在那里,但为了消除任何意外,我无论如何都将它们复制在那里。重点是将References部分中的任何内容复制到exe所在的工作目录中。令人惊讶的是它仍然无效。我怎样才能找出缺少的东西或者让这个东西起作用?
编辑我刚刚创建了一个裸骨控制台应用来展示我的观点。这是整个计划。正如我所提到的,它在IDE内部工作正常,而不是在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();
}
}
}
答案 0 :(得分:0)
参见以下相关项目:
http://razorengine.codeplex.com/discussions/248593
http://razorengine.codeplex.com/workitem/532
基本上,这是在RazorEngine v3中修复的 http://razorengine.codeplex.com/releases/view/77431