我如何修复system.web.dll版本冲突?

时间:2014-03-15 09:55:53

标签: asp.net asp.net-mvc asp.net-mvc-4 conflict razorengine

我在我的项目(Asp.net MVC 4)中使用RazorEngine V 3.0.8来解析电子邮件模板。我在我的项目中使用system.web.dll版本1.0.0。 我的电脑上的所有东西都可以作为本地网站使用并且可以工作。但在服务器上显示此错误:

  

无法加载文件或程序集&System; Web.Razor,Version = 2.0.0.0,   Culture = neutral,PublicKeyToken = 31bf3856ad364e35'或其中一个   依赖。系统找不到指定的文件。

但我在我的项目中没有使用System.Web.Razor,Version = 2.0.0.0。 当我将System.Web.Razor,Version = 2.0.0.0添加到我的项目中时,我遇到了使用RazorEngine解析电子邮件模板的问题,并显示了此错误:

  

System.IO.FileLoadException:无法加载文件或程序集   ' System.Web.Razor,Version = 1.0.0.0,Culture = neutral,   公钥= 31bf3856ad364e35'或其中一个依赖项。该   定位程序集的清单定义与程序集不匹配   参考。 (来自HRESULT的异常:0x80131040)文件名:   ' System.Web.Razor,Version = 1.0.0.0,Culture = neutral,   公钥= 31bf3856ad364e35'在   RazorEngine.Compilation.DefaultCompilerServiceFactory.CreateCompilerService(语言   语言)   RazorEngine.Templating.TemplateService.CreateTemplateType(字符串   razorTemplate,Type modelType)at   RazorEngine.Templating.TemplateService.CreateTemplate [T](字符串   razorTemplate,T型号)at   RazorEngine.Templating.TemplateService.Parse [T](String razorTemplate,   T模型)在RazorEngine.Razor.Parse [T](String razorTemplate,T   模特)   System.Dynamic.UpdateDelegates.UpdateAndExecute3 [T0,T1,T2,TRET](调用点   site,T0 arg0,T1 arg1,T2 arg2)at   Service.Implementation.EmailService.InitializeTemplate(字符串   templateBody,Object model)in   C:\巴德尔\服务\执行\ EmailService.cs:行   21点   System.Dynamic.UpdateDelegates.UpdateAndExecute3 [T0,T1,T2,TRET](调用点   site,T0 arg0,T1 arg1,T2 arg2)at   Service.Implementation.EmailService.SendSingleEmail(String from,from   String name,String [] to,String subject,String templateBody,Object   model,EmailSendMethod sendMethod)in   C:\巴德尔\服务\执行\ EmailService.cs:行   32在CallSite.Target(Closure,CallSite,EmailService,String,   String,String [],String,String,Object,EmailSendMethod)at   System.Dynamic.UpdateDelegates.UpdateAndExecute8 [T0,T1,T2,T3,T4,T5,T6,T7,TRET](调用点   site,T0 arg0,T1 arg1,T2 arg2,T3 arg3,T4 arg4,T5 arg5,T6 arg6,   T7 arg7)at   Service.Implementation.EmailService.SendSingleEmail(String from,from   String name,String to,String subject,String templateBody,Object   model,EmailSendMethod sendMethod)in   C:\巴德尔\服务\执行\ EmailService.cs:行   27点   Service.Implementation.UserEmailService.SendLicenseToUser(Guid令牌)   在   C:\巴德尔\服务\执行\ UserEmailService.cs:行   86点   Web.Controllers.PurchaseController.CreatePurchaseAndSendEmail(IEnumerable`1   cartItems)in   C:\巴德尔\网络\ \控制器PurchaseController.cs:行   759

     

警告:装配绑定日志记录已关闭。要启用程序集绑定   失败日志记录,设置注册表值   [HKLM \ Software \ Microsoft \ Fusion!EnableLog](DWORD)为1.注意:有   与程序集绑定失败相关的一些性能损失   日志记录。要关闭此功能,请删除注册表值   [HKLM \ SOFTWARE \微软\融合!EnableLog]。

请帮助我该怎么办?

1 个答案:

答案 0 :(得分:0)

我查看了你的堆栈跟踪,看起来它正在尝试加载 System.Web.Razor,Version = 1.0.0.0 不是System.Web.Razor,Version = 2.0.0.0 所以请尝试检查Web.config文件中的引用,您也可以尝试使用System.Web.Razor.dll部署您的站点(选择始终复制)也许这个帮助