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

Ant*_*and 31 c# asp.net-mvc-3

我以前遇到过这个问题,但我需要做的就是清理和重建项目.现在这似乎不再起作用了.当我启动我的Asp.Net MVC3项目调试器时,该站点在我的浏览器中打开.我得到了这个错误,而不是在浏览器中显示第一页

Parser Error Message: Could not load file or assembly 'System.Web.WebPages, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot find the file specified.

Source Error: 
Line 31:         <add assembly="System.Web.Routing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
Line 32:         <add assembly="System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
Line 33:         <add assembly="System.Web.WebPages, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
Line 34:       </assemblies>
Line 35:     </compilation>
Run Code Online (Sandbox Code Playgroud)

我似乎无法弄清楚如何解决这个问题.任何的想法?

小智 20

我的解决方案是转到我的服务器并在服务器上安装网页版本2.

访问http://www.microsoft.com/en-us/download/details.aspx?id=34600

并下载该包并运行它.

就这么简单.


zua*_*auz 18

我有这个问题.也许是因为我在MVC v3的顶部安装了.NET MVC v4,不确定.

无论如何,我System.Web.WebPages从我的项目中删除了引用.然后在"添加引用"对话框的.NET选项卡中,列出了两个System.Web.WebPages引用,版本1.0.0.0和2.0.0.0.我确保添加版本1.0.0.0,因为那是缺少的版本.

在此输入图像描述


小智 10

为我工作:

  1. 工具 - > NuGet包管理器 - >管理解决方案的NuGet包

  2. 浏览

  3. 搜索"Microsoft.AspNet.WebPages"

  4. 确保解决方案中的所有项目都具有最新版本.


cen*_*cru 6

当我拥有它时,我在这个问题上划了一会儿.最后我注意到我在web.config的"runtime"部分中有以下部分.

<runtime>
 . . .
      <dependentAssembly>
        <assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-2.0.0.0" newVersion="2.0.0.0" />
      </dependentAssembly>
. . .
</runtime>
Run Code Online (Sandbox Code Playgroud)

如您所见,这是指程序集的第2版,它与您在web.config的system.web/compilation/assemblies部分中也具有的以下代码不匹配.

<add assembly="System.Web.WebPages, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
Run Code Online (Sandbox Code Playgroud)

项目参考中引用的实际程序集确实是v1.0.0.0,因此我将上面的第一个代码块更改为以下代码,它立即修复了问题.我不确定这个错误到底是怎么回事.

<runtime>
 . . .
      <dependentAssembly>
        <assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-1.0.0.0" newVersion="1.0.0.0" />
      </dependentAssembly>
. . .
</runtime>
Run Code Online (Sandbox Code Playgroud)