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

时间:2016-03-30 21:33:46

标签: asp.net-mvc wcf nuget .net-assembly razor-2

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

错误:

enter imag*e description here

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

  

调用程序集:System.Web.Mvc,Version = 4.0.0.1,Culture = neutral,   公钥= 31bf3856ad364e35。

但是,此项目中未引用System.Web.MVC dll,项目中的引用如下图所示:

enter image description here

虽然它没有被引用,但它总是出现在bin文件夹中,即使我清除它。也许这就是为什么它试图调用“ System.Web.WebPages.Razor ”版本2.0。

澄清问题的任何线索:

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

    <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>

    1. 也不包含在包配置中:
    2. <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>

      1. 未包含在参考中
      2. 我想知道最近发生了什么?可能另一个项目会影响它! 此外,我已尝试使用nugget更新软件包(已卸载并重新安装),但仍处于相同的情况。

        问题的可能原因:

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

        感谢任何帮助。

4 个答案:

答案 0 :(得分:11)

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

答案 1 :(得分:1)

我首先看看程序集绑定失败 - 这将显示哪个程序集请求失败绑定。

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

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

祝你好运!

答案 2 :(得分:0)

在我的情况下,错误是在部署之后,并且该问题是该服务器的子文件夹中的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,以确保某处没有引用!

答案 3 :(得分:0)

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

因此在我的其他项目中安装Microsoft.AspNet.Mvc可以为我解决此错误。