【问题标题】:Could not load file or assembly 'System.Web.WebPages'无法加载文件或程序集“System.Web.WebPages”
【发布时间】:2012-06-28 14:28:03
【问题描述】:

我以前遇到过这个问题,但我需要做的就是清理并重建项目。现在这似乎不再起作用了。当我启动我的 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>

我似乎无法弄清楚如何解决这个问题。有什么想法吗?

【问题讨论】:

  • 清理,关闭工作室,再次打开项目。
  • System.Web.WebPages 在您的项目引用中吗?
  • 是的!无法清洁和关闭
  • 尝试删除现有的引用并再次引用它?
  • 我试过了,没有任何区别:/

标签: c# asp.net-mvc-3


【解决方案1】:

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

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

然后下载包并运行它。

就这么简单。

【讨论】:

  • 工作就像一个魅力。谢谢
  • 这是一个杰出的,因为这是在服务器上。我的在网络部署转移后突然出现,即不能与 nuget 或项目相关。谢谢!!!
  • 就我而言,这是正确的答案。我遇到了完全相同的事情并安装了 WebMatrix 以使其适合我。
【解决方案2】:

我遇到了这个问题。可能是我在 MVC v3 之上安装 .NET MVC v4 时发生的,不确定。

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

【讨论】:

  • 谢谢大家,这导致了解决方案。就我而言,我们的服务器缺少整个 DLL。根据我的经验,WebPages 1.0 与 MVC3 一起安装(如果您之前没有安装的话),而在 MVC4 安装中有一个单独的 WebPages 2.0 包.确保安装 web.config 中引用的正确版本。
  • 这个解决方案对我有用。我在将 Target Framework 从 3.5 更改为 4.0 时遇到了问题。 VS 2010 试图提供帮助并将 ASP.NET MVC 从 2.0 升级到 4.0,这引起了很多头痛。只需删除 System.Web.Mvc 引用并添加第 2 版即可解决问题。
【解决方案3】:

为我工作:

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

  2. 浏览

  3. 搜索“Microsoft.AspNet.WebPages”

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

【讨论】:

    【解决方案4】:

    当我遇到这个问题时,我挠了挠头。最终我注意到我的 web.config 的“运行时”部分中有以下部分。

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

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

    <add assembly="System.Web.WebPages, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
    

    该项目的参考文献中引用的实际程序集确实是 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>
    

    【讨论】:

    • 谢谢,这个解决了我的问题。参考包含 v2.0,web.config 包含 v1.0。
    【解决方案5】:

    转到菜单:“工具/Nuget 包管理器/包管理器控制台”

    运行命令install-package Microsoft.AspNet.WebPages

    【讨论】:

      【解决方案6】:

      我遇到了这个问题,我所要做的就是更改外部引用的属性:从 TrueFalse

      的特定版本

      之后项目再次构建。

      【讨论】:

        【解决方案7】:

        我为 MVC5 获取了同样的问题。

        首先从项目的参考中检查您的 System.Web.WebPages 程序集。

        1. 如果未找到,则通过从项目参考中选择添加参考来添加。
        2. 如果找到该参考的属性中的任何检查版本。然后检查您的项目 web.config 文件。可能是这两个版本不匹配。

        对于我来说,我添加了 2.0.0.0 版本的参考。但我的 web.config 文件从

        引用它

        &lt;bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" /&gt;

        我把它改成

        &lt;bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="2.0.0.0" /&gt;

        它在 MVC5 中对我有用。

        请查看我附件中突出显示的部分以获得更多许可。

        【讨论】:

          猜你喜欢
          • 2020-08-17
          相关资源
          最近更新 更多