【问题标题】:Using 2 diffrent Razor versions in one solution在一个解决方案中使用 2 个不同的 Razor 版本
【发布时间】:2014-01-20 11:00:46
【问题描述】:

有多个项目的解决方案,其中一个是使用 RazorEngine(取决于 System.Web.Razor 3.0.0.0),另一个是 ASP.NET MVC 4 项目,它使用System.Web.Razor 2.0.0.0。

一切正常,直到我开始使用 MVC 项目中第一个项目中的类。然后我得到这个错误:

{"Could not load file or assembly 'System.Web.Razor, Version=3.0.0.0, Culture=neutral,
PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The located assembly's
manifest definition does not match the assembly reference. (Exception from HRESULT:
0x80131040)":"System.Web.Razor, Version=3.0.0.0, Culture=neutral,
PublicKeyToken=31bf3856ad364e35"}

有没有办法同时使用这两个版本?将整个解决方案升级到 Razor 3 不是一种选择,因为它会破坏事情。

【问题讨论】:

    标签: .net asp.net-mvc visual-studio razor razorengine


    【解决方案1】:

    由于 .NET 不支持将同一个程序集的多个版本加载到任何应用程序域中,因此它不会在同一个应用程序池中运行。通过一些技巧,您也许可以使用两个单独的虚拟目录来使事情正常工作,一个托管旧解决方案,一个托管新解决方案。

    只要您的应用程序不依赖 Session 状态,这可能是最简单的工作方式。只要您确保两个应用程序都配置了the same MachineKeys。这将是一种“网络农场部署”。

    如果您使用的是会话状态,您可能需要configure session to be stored out-of-process in the state service or in SQL Server

    【讨论】:

    • 谢谢,我想我会重新考虑将整个项目升级到 Razor v3。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-07-13
    • 1970-01-01
    • 1970-01-01
    • 2014-11-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多