2012-07-11 106 views
1

我正在使用MVC2的Web项目。我决定尝试用RazorEngine来做一些电子邮件模板。当我使用MVC2项目时,这看起来工作得很好,所以我认为RazorEngine对于我的电子邮件模板解决方案可以很好地工作。我当时忘记的是我的本地开发机器上已经安装了MVC3。RazorEngine是否需要安装MVC3?

无法加载文件或程序集“System.Web.Razor:

当应用程序试图与RazorEngine做任何一个预测试服务器我得到在日志下面的错误上部署项目后,版本= 1.0.0.0, Culture = neutral,PublicKeyToken = 31bf3856ad364e35'或其 依赖项之一。

系统找不到指定的文件。

文件名: 'System.Web.Razor,版本= 1.0.0.0,文化=中性公钥= 31bf3856ad364e35'

在RazorEngine.Compilation.DefaultCompilerServiceFactory.CreateCompilerService(语言 语言)

在RazorEngine.Templating.TemplateService.CreateTemplateType(字符串razorTemplate,类型modelType)

在RazorEngine.Templating.TemplateService.CreateTemplate [T](StringrazorTemplate,T模型)

在RazorEngine.Templating.TemplateService.Parse [T](字符串razorTemplate,T模型)

在RazorEngine.Razor.Parse [T](字符串razorTemplate,T模型)

在System.Dynamic.UpdateDelegates。 UpdateAndExecute3 [T0,T1,T2,TRET](调用点站点,T0为arg0,T1 ARG1,T2 ARG2)

在Persistence.Utility.RazorEngineHelper.Parse(字符串TEMPLATENAME,对象模型)在...

它无法找到'System.Web.Razor'这一事实意味着此DLL不存在部署的服务器。我能想到的部署服务器和本地开发机器之间唯一的区别是部署服务器没有安装MVC3,但我可能会误解,因为部署服务器不是我通常控制的东西,因此我没有很多关于它的信息。它是为了托管这个特定的应用程序,所以此应用程序之前已经部署到该服务器。这是我第一次使用RazorEngine作为依赖进行部署。

回答

2

的System.Web.Razor DLL部署与RazorEngine,你可以验证它是在你\bin目录?

+1

谢谢!这是真的。我检查了我的Web项目的bin目录,并且'System.Web.Razor.dll'不存在。我的web项目有一个项目引用另一个项目B和项目B是引用RazorEngine的。在检查项目B的bin目录时,我可以看到两个DLL,但是我的主Web项目在bin中只有'RazorEngine.dll',而不是'System.Web.Razor.dll',这就是为什么我会得到上述错误。有什么想法吗? – tkha007 2012-07-11 20:58:11

+0

啊我刚刚遇到这个[后](http://stackoverflow.com/questions/7433764/not-all-of-a-librarys-refrenced-dlls-are-copied-local-when-refrencing-from- ANOT)。这必须是为什么'System.Web.Razor.dll'不会被复制到主Web项目。 – tkha007 2012-07-11 21:49:52

0

我觉得剃刀语法/视图引擎第一次出现在MVC 3

0

我有同样的问题。

解决方法是将所需版本的System.Web.Razor.dll放入与RazorEngine.dll相同的文件夹中。

如果你这样做,RazorEngine.dll和System.Web.Razor.dll将被复制到destionation。

相关问题