我正在做一个使用MVC2的网络项目。我决定试一试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‘ (在RazorEngine.Compilation.DefaultCompilerServiceFactory.CreateCompilerService(Language语言) 在RazorEngine.Templating.TemplateService.CreateTemplateType(String razorTemplate,类型为modelType) 在RazorEngine.Templating.TemplateService.CreateTemplateT 在RazorEngine.Templating.TemplateService.ParseT 在RazorEngine.Razor.ParseT 在System.Dynamic.UpdateDelegates.UpdateAndExecute3T0,T1,T2,TRet 在Persistence.Utility.RazorEngineHelper.Parse(String templateName,对象模型)
它找不到'System.Web.Razor‘这一事实意味着部署的服务器上不存在这个DLL。我能想到的部署服务器和本地开发机器之间唯一的区别是部署服务器没有安装MVC3,但是我可能弄错了,因为部署服务器不是我通常控制的东西,因此我没有很多关于它的信息。它的目的是承载这个特定的应用程序,因此以前已经将此应用程序部署到此服务器上。这是我第一次将RazorEngine作为依赖项进行部署。
发布于 2012-07-11 07:11:50
System.Web.Razor dll是用RazorEngine部署的,您能验证它在\bin目录中吗?
发布于 2012-07-11 03:24:56
我认为Razor语法/视图引擎最早出现在MVC 3中。
发布于 2015-05-13 21:01:48
我也有过同样的问题。
解决方案是将所需的System.Web.Razor.dll版本与RazorEngine.dll放在同一个文件夹中。
如果这样做,RazorEngine.dll和System.Web.Razor.dll将被复制到描述中。
https://stackoverflow.com/questions/11425008
复制相似问题