无法加载文件或程序集“WebMatrix.Data”

Posted

技术标签:

【中文标题】无法加载文件或程序集“WebMatrix.Data”【英文标题】:Could not load file or assembly 'WebMatrix.Data` 【发布时间】:2014-08-15 22:12:20 【问题描述】:

我将 MVC4 更新为 MVC5。当您运行应用程序时,我收到一个错误,我没有WebMatrix.Data。我安装了它PM> Install-Package WebMatrix.Data。现在,当您开始进入浏览器时:

无法加载文件或程序集 'WebMatrix.Data,版本 = 3.0.0.0, 文化 = 中立,PublicKeyToken = 31bf3856ad364e35' 或其之一 依赖关系。定位程序集的清单定义不匹配 程序集参考。 (HRESULT 异常:0x80131040)

有人知道如何解决这个问题吗?

包管理器控制台日志

Attempting to resolve dependency 'Microsoft.AspNet.WebPages.Data (≥ 2.0.20710.0)'.
Installing 'WebMatrix.Data 2.0.30506.0'.
You are downloading WebMatrix.Data from Microsoft, the license agreement to which is available at http://www.microsoft.com/web/webpi/eula/aspnetcomponent_rtw_enu.htm. Check the package for additional dependencies, which may come with their own license agreement(s). Your use of the package and dependencies constitutes your acceptance of their license agreements. If you do not accept the license agreement(s), then delete the relevant components from your device.
Successfully installed 'WebMatrix.Data 2.0.30506.0'.
Adding 'WebMatrix.Data 2.0.30506.0' to xxx.
Successfully added 'WebMatrix.Data 2.0.30506.0' to xxx.`

一段代码Web.config

<runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
        <bindingRedirect oldVersion="0.0.0.0-5.0.0.0" newVersion="5.0.0.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35" />
        <bindingRedirect oldVersion="0.0.0.0-1.3.0.0" newVersion="1.3.0.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="EntityFramework" publicKeyToken="b77a5c561934e089" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="DotNetOpenAuth.AspNet" publicKeyToken="2780ccd10d57b246" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-4.3.0.0" newVersion="4.3.0.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="DotNetOpenAuth.Core" publicKeyToken="2780ccd10d57b246" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-4.3.0.0" newVersion="4.3.0.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="Microsoft.AspNet.Identity.Core" publicKeyToken="31bf3856ad364e35" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-2.0.0.0" newVersion="2.0.0.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35" />
        <bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35" />
        <bindingRedirect oldVersion="0.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="System.Web.Razor" publicKeyToken="31bf3856ad364e35" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="System.Web.WebPages.Razor" publicKeyToken="31bf3856ad364e35" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="WebMatrix.WebData" publicKeyToken="31bf3856ad364e35" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="WebMatrix.Data" publicKeyToken="31bf3856ad364e35" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-2.0.0.0" newVersion="2.0.0.0" />
      </dependentAssembly>
    </assemblyBinding>
  </runtime>

【问题讨论】:

你读过***.com/questions/215026/…吗? 我读过。现在我得到了编译器The type or namespace name 'WebMatrix' could not be found (are you missing a using directive or an assembly reference?) 好吧,您已经阅读,但是您从建议的解决方案中尝试了什么? 【参考方案1】:

进入:Tools &gt; NuGet Package Manager &gt; Package Manager Console

并运行以下命令:

PM> Install-Package Microsoft.AspNet.WebPages.Data

【讨论】:

是的,它为我完成了 - 必须将其中一个参考更改为复制本地,但我已经启动并运行我的播种:D - 谢谢! 我已经共享依赖于旧版本的依赖项目。我必须浏览所有参考资料并进行更新才能使其正常工作...这迫使我将所有站点上的站点从 MVC4 升级到 5...提前知道这一点我可能会以不同的方式做这件事.. . 我安装了一些随机的 NuGet 包并得到与 OP 相同的错误。我安装了这个奇怪的包,它解决了这个问题。为什么这首先是一个问题?请问这个错误是怎么来的?【参考方案2】:

这实际上是一个遗留库。如果要从 MVC 4 升级到 5,则应改为安装 Microsoft.AspNet.WebPages.Data。

PM> Install-Package Microsoft.AspNet.WebPages.Data

【讨论】:

【参考方案3】:

这个也可以

Update-Package Microsoft.AspNet.WebPages.Data

【讨论】:

【参考方案4】:

这对我有用。花了几个星期才弄明白。

确保您的目标框架符合您的要求(我有4.6.1)。

进入:Tools &gt; NuGet Package Manager &gt; Package Manager Console 并执行以下命令。

Uninstall-Package Microsoft.AspNet.WebHelpers
Uninstall-Package Microsoft.AspNet.WebPages.OAuth
Uninstall-Package Microsoft.AspNet.WebPages.WebData
Uninstall-Package Microsoft.AspNet.WebPages.Data

Install-Package Microsoft.AspNet.WebPages.Data
Install-Package Microsoft.AspNet.WebPages.WebData
Install-Package Microsoft.AspNet.WebPages.OAuth
Install-Package Microsoft.AspNet.WebHelpers

希望这对尝试其他解决方案但没有运气的人有所帮助。

【讨论】:

很好的解决方案,谢谢兄弟!我对其他解决方案没有运气,但这真的帮助了我:)【参考方案5】:

从您的包管理器控制台中,我可以看到您的项目已成功将“WebMatrix.Data 2.0.30506.0”添加到 xxx。`

所以让您的 web.config 与 WebMatrix.Data 2.0.30506.0 同步

【讨论】:

解释你的答案?为什么最初问题中的程序失败了? 从配置文件中看到这一行 它说新版本是 3.0.0.0 但安装的版本不匹配,所以它们需要同步。【参考方案6】:

安装 MVC 4(不是运行时,而是完整版)为我修复了它。

【讨论】:

以上是关于无法加载文件或程序集“WebMatrix.Data”的主要内容,如果未能解决你的问题,请参考以下文章

无法加载文件或程序集,但已加载

无法加载文件或程序集 'PayPalAdaptivePaymentsSDK,版本 = 2.12.117.0

无法加载文件或程序集。找到的程序集的清单定义与程序集引用不匹配

无法加载文件或程序集'netstandard,版本 = 2.0.0.0

无法加载文件或程序集 此处的程序集名称 或其依赖项之一。访问被拒绝

无法加载文件或程序集或其依赖项之一