1

我正在开发一个使用 MVC2 的 Web 项目。我决定尝试使用 RazorEngine来做一些电子邮件模板。当我使用 MVC2 项目进行原型设计时,这似乎工作得很好,所以我认为 RazorEngine 可以很好地用于我的电子邮件模板解决方案。我当时忘记的是我实际上在本地开发机器上安装了 MVC3。

在预测试服务器上部署项目后,当应用程序尝试使用 RazorEngine 执行任何操作时,我在日志中收到以下错误:

无法加载文件或程序集“System.Web.Razor,Version=1.0.0.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35”或其依赖项之一。

该系统找不到指定的文件。

文件名:'System.Web.Razor,版本=1.0.0.0,文化=中性,PublicKeyToken=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](CallSite 站点,T0 arg0,T1 arg1,T2 arg2)

在 Persistence.Utility.RazorEngineHelper.Parse(String templateName, Object model) in ...

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

4

3 回答 3

2

System.Web.Razor dll 是使用 RazorEngine 部署的,你能验证它在你的\bin目录中吗?

于 2012-07-11T07:11:50.537 回答
0

我认为 Razor 语法/视图引擎首先出现在 MVC 3 中。

于 2012-07-11T03:24:56.410 回答
0

我遇到过同样的问题。

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

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

于 2015-05-13T21:01:48.620 回答