VS 2015:无法加载文件或程序集'System.Web.WebPages.Razor,版本 = 2.0.0.0

Posted

技术标签:

【中文标题】VS 2015:无法加载文件或程序集\'System.Web.WebPages.Razor,版本 = 2.0.0.0【英文标题】:VS 2015 : Could not load file or assembly 'System.Web.WebPages.Razor, Version=2.0.0.0VS 2015:无法加载文件或程序集'System.Web.WebPages.Razor,版本 = 2.0.0.0 【发布时间】:2016-07-19 02:59:28 【问题描述】:

我正在运行一个包含不同项目的解决方案。但是,我正在尝试使用 Visual Studio 2015 和框架 4.6(在 Windows 8 OS、IIS Express 上)运行一个包含 wcf 服务的项目(类库)。但是它一直在浏览器中显示此错误:

错误:

我注意到 Razor 2.0 的调用程序集是“System.Web.Mvc”版本 4.0.0.1:

调用程序集:System.Web.Mvc,版本=4.0.0.1,文化=中性, PublicKeyToken=31bf3856ad364e35。

但是,System.Web.MVC dll在这个项目中没有被引用,项目中的引用如下图所示:

虽然它没有被引用,但它总是出现在 bin 文件夹中,即使我清除它也是如此。这可能就是它试图调用“System.Web.WebPages.Razor”2.0 版的原因。

澄清问题的任何线索:

    我在 Web.Config 中没有调用 System.web.mvc 的相关程序集

<runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-1.5.2.14234" newVersion="1.5.2.14234" />
      </dependentAssembly>
     
      <dependentAssembly>
        <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
      </dependentAssembly>
    </assemblyBinding>
  </runtime>
    也不包含在包配置中:

<packages>
  <package id="EntityFramework" version="6.1.3" targetFramework="net46" />
  <package id="Microsoft.AspNet.Providers" version="2.0.0" targetFramework="net451" />
  <package id="Microsoft.AspNet.Providers.Core" version="2.0.0" targetFramework="net451" />
  <package id="Microsoft.Web.Infrastructure" version="1.0.0.0" targetFramework="net46" />
  <package id="PostSharp" version="4.3.5-alpha" targetFramework="net46" />
  <package id="System.Web.Providers" version="1.2" targetFramework="net451" />
</packages>
    不作为参考提供

我想知道发生了什么?可能另一个项目会影响它! 我也尝试使用 nugget 更新软件包(卸载并重新安装),但仍然处于相同的情况。

问题的可能原因:

我还注意到这个项目中有一个“Gobal.asax”文件,它使用“MvcApplication”类实现“System.Web.HttpApplication" 这可能是问题的一个很好的原因。

感谢任何帮助。

【问题讨论】:

【参考方案1】:

解决方案:通过 nuget manager 安装 Microsoft.AspNet.Webpages 第一个版本 2.0 版本。

【讨论】:

这对我有帮助。 这对我也有帮助。 谢谢你解决了我的问题 我也删除了我的 bin 文件夹 同时删除 obj 文件夹。有时复制粘贴项目并不是一个好主意。【参考方案2】:

我将从查看程序集绑定失败开始 - 这将向您显示哪个程序集正在请求失败的绑定。

有一个方便的小工具可以用来查看绑定失败。这应该可以帮助您追踪它。

https://msdn.microsoft.com/en-us/library/e74a18c4(v=vs.71).aspx

祝你好运!

【讨论】:

PS 位置:C:\Program Files (x86)\Microsoft SDKs\Windowsversion\bin.NET Version Tools【参考方案3】:

在我的情况下,错误出现在部署之后,问题是该服务器子文件夹中的 web.config 中的引用。

我通过远程进入该机器并在本地浏览站点来解决此问题(或者您可以在 web.config 中启用远程错误)

<section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />

因此,请务必在所有文件中搜索 2.0.0.0 或 System.Web.WebPages.Razor 以确保某处没有引用!

【讨论】:

【参考方案4】:

我收到此错误,但引发错误的项目已正确安装 Microsoft.AspNet.Webpages。然后我意识到保存在单独项目中的 WCF 服务丢失了它的 MVC 安装。

所以在我的其他项目中安装 Microsoft.AspNet.Mvc 为我解决了这个错误。

【讨论】:

以上是关于VS 2015:无法加载文件或程序集'System.Web.WebPages.Razor,版本 = 2.0.0.0的主要内容,如果未能解决你的问题,请参考以下文章

无法加载文件或程序集'System.ValueTuple'

寻找解决策略:无法加载文件或程序集[重复]

Mono 上的 MVC 5:无法加载文件或程序集“System.Web.Entity”或其依赖项之一

未能加载文件或程序集“System.Data.OracleClient”或它的某一个依赖项。试图加载格式不正确的程序。

未能加载文件或程序集“System.Data.OracleClient”或它的某一个依赖项。试图加载格式不正确的程序。

无法加载文件或程序集“System.Windows.Interactivity”[重复]