【发布时间】:2016-06-29 15:32:57
【问题描述】:
我正在将我的项目从 MVC 4 转换为 MVC 5(并将 .Net 4 转换为 .Net 4.5.2,这是改变的真正驱动力。)
当我运行我的一个页面时,我收到了这个错误(我添加了空格以便于阅读)
[A]System.Web.WebPages.Razor.Configuration.HostSection 无法转换 到 [B]System.Web.WebPages.Razor.Configuration.HostSection。
类型 A 源自 'System.Web.WebPages.Razor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' 在上下文中 位置的“默认” 'C:\windows\Microsoft.Net\assembly\GAC_MSIL\System.Web.WebPages.Razor\v4.0_1.0.0.0__31bf3856ad364e35\System.Web.WebPages.Razor.dll'。
类型 B 源自 'System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' 在上下文中 位置的“默认” 'C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\studentportal3g\2204bad2\aece9b3b\assembly\dl3\ad80387c\91adbf51_fc73d101\System.Web.WebPages.Razor.dll'。
当我第一次看到这个的时候,很容易啊!没那么多:)
我检查了每个项目,并确保它的版本升级到 MVC 5,其中包含 System.Web.WebPages.Razor.dll 的 3.0.0.0 版本。
清理重建,仍然得到错误。没问题,我会删除缓存的临时文件。
清理重建,仍然有问题。我回去,手动检查每个版本的 System.Web.WebPages.Razor.dll,在每个项目的引用中都有对其的引用。我检查了我复制 dll 以手动引用它们的文件夹,它不存在。
如果我的解决方案不包含 DLL 的副本或对 DLL 的引用,并且我手动删除了 'C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary 中的缓存文件夹ASP.NET
文件\studentportal3g...
旧的坏 dll 来自哪里?如何修复此错误?如何防止它再次发生?
谢谢,
埃里克-
【问题讨论】:
-
看起来 DLL 存储在 Global Assembly Cache 中。将 GAC 中的程序集更新为新的。
标签: c# asp.net-mvc asp.net-mvc-4 razor asp.net-mvc-5