我正在开发一个使用MVC2的Web项目。我决定试用RazorEngine做一些电子邮件模板。当我使用MVC2项目进行原型设计时,这似乎工作正常,所以我认为RazorEngine可以很好地用于我的电子邮件模板解决方案。我当时忘记的是我在本地开发机器上安装了MVC3。
在预测试服务器上部署项目后,当应用程序尝试使用RazorEngine执行任何操作时,我在日志中收到以下错误:
无法加载文件或程序集'System.Web.Razor,Version = 1.0.0.0, Culture = neutral,PublicKeyToken = 31bf3856ad364e35'或其中一个 依赖。
系统找不到指定的文件。
文件名:'System.Web.Razor,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35'
at RazorEngine.Compilation.DefaultCompilerServiceFactory.CreateCompilerService(语言 语言)
at RazorEngine.Templating.TemplateService.CreateTemplateType(String razorTemplate,Type modelType)
在RazorEngine.Templating.TemplateService.CreateTemplate [T](StringrazorTemplate,T model)
at RazorEngine.Templating.TemplateService.Parse [T](String razorTemplate,T model)
at RazorEngine.Razor.Parse [T](String razorTemplate,T model)
在System.Dynamic.UpdateDelegates.UpdateAndExecute3 [T0,T1,T2,TRet](CallSite站点,T0 arg0,T1 arg1,T2 arg2)
在Persistence.Utility.RazorEngineHelper.Parse(String templateName,Object model)in ...
无法找到“System.Web.Razor”这一事实意味着已部署的服务器上不存在此DLL。部署服务器和我的本地开发机器之间唯一的区别是部署服务器没有安装MVC3但我可能会弄错,因为部署服务器不是我通常控制的东西,因此我没有很多关于它的信息。它旨在托管此特定应用程序,因此以前已将此应用程序部署到此服务器。这是我第一次使用RazorEngine作为依赖项进行部署。
答案 0 :(得分:2)
使用RazorEngine部署System.Web.Razor dll,你可以验证它在你\bin
目录中吗?
答案 1 :(得分:0)
我认为Razor语法/视图引擎首次出现在MVC 3中。
答案 2 :(得分:0)
我有同样的问题。
解决方案是将所需版本的System.Web.Razor.dll与RazorEngine.dll放在同一个文件夹中。
如果您这样做,RazorEngine.dll和System.Web.Razor.dll将被复制到destionation。