0

我正在开发一个 MVC 4 应用程序(即 System.Web.Razor 版本 2.0.0.0)。

我已经从这个应用程序中引用了外部程序集(它引用了 System.Web.Razor 版本 1.0.0.0)。

我从该程序集的 NuGet 包中收到了 System.Web.Razor v 1.0.0.0,因此在我的 MVC 应用程序的根目录中添加了一个文件夹名称“\Dependency”,并在 web.config 的部分中添加了以下内容。

<dependentAssembly>
    <assemblyIdentity name="System.Web.Razor" publicKeyToken="31bf3856ad364e35" culture="neutral" />
    <codeBase version="1.0.0.0" href="/Dependency/System.Web.Razor.dll"/>
  </dependentAssembly>

这在我的开发环境中正常工作。

但是在生产环境中,它给了我一个错误

"Could not load file or assembly 'System.Web.Razor, Version 1.0.0.0". 
The system could not find the file specified.

我检查了生产环境,可以在 Dependency 文件夹中看到“System.Web.Razor”版本 1.0.0.0,而且生产服务器上的 web.config 包含我上面显示的绑定。

我记得,我早些时候解决了这个问题,但它现在正在发生,我想永久地摆脱它。

知道如何处理这个问题吗?

谢谢

尼尔曼

PS 几点补充——

  1. 引用 System.Web.Razor 版本 1.0.0.0 的外部程序集是 RazorEngine 版本 3.0.8

  2. 构建是通过 MS Build 生成的

4

1 回答 1

0

您不应尝试在项目中同时引用 System.Web.Razor.dll 的版本 1 和版本 2;它们有许多重复的类和命名空间名称,不能以这种方式一起使用。

但是,您看到的错误没有用或不准确。我将调查为什么会显示此错误并为此提交错误。

同时,您是否联系过引用版本 1 的软件包的所有者?如果存在硬编码的版本依赖关系,则意味着您或其他正在创建 Razor v2 应用程序的用户无法使用该包。

于 2013-01-04T03:24:17.460 回答