【问题标题】:OAuth.dll using higher version than referenced assembly of webMatrix.data and webmatrix.webdataOAuth.dll 使用比 webMatrix.data 和 webmatrix.webdata 的引用程序集更高的版本
【发布时间】:2015-09-14 06:52:30
【问题描述】:

我收到此错误:

Assembly 'Microsoft.Web.WebPages.OAuth, Version=3.0.0.0, Culture=neutral, 
PublicKeyToken=31bf3856ad364e35' uses 'WebMatrix.WebData, Version=3.0.0.0, 
Culture=neutral, PublicKeyToken=31bf3856ad364e35' which has a higher version 
than referenced assembly 'WebMatrix.WebData, Version=2.0.0.0, Culture=neutral,
PublicKeyToken=31bf3856ad364e35'
  1. 我从堆栈溢出中关注了这个帖子Could not load file or assembly 'WebMatrix.Data`并安装了它

    PM> 安装包 WebMatrix.Data 但不工作。

  2. 然后我删除了 packages 文件夹并恢复它也不起作用。

  3. 我尝试了以下方法:

    PM> 卸载包 Microsoft.AspNet.WebPages.OAuth 然后重新安装它。这也不起作用。

首先要注意的是,如果我尝试单独安装 nuget 包----

 PM> Install-Package WebMatrix.WebData

PM> Install-Package WebMatrix.Data

那么它只为我提供这个 vrsion 2.0.30506

我不知道如何解决这个问题。 web.config 文件是这样的。

<dependentAssembly>
<assemblyIdentity name="WebMatrix.Data" publicKeyToken="31bf3856ad364e35" culture="neutral" /> 
<bindingRedirect oldVersion="0.0.0.0-2.0.0.0" newVersion="2.0.0.0" />

【问题讨论】:

  • 我试过这个robertgreiner.com/2014/06/… 但问题并没有完全消失。现在,它说明以下消息---------无法加载文件或程序集'WebMatrix.Data'或一个其依赖项。找到的程序集的清单定义与程序集引用不匹配。 (HRESULT 异常:0x80131040)
  • 我遇到了完全相同的问题。没有解决方案?我不明白 OAuth 包如何使用 WebMatrix.WebData 版本 3,因为这个版本在任何地方都不存在。

标签: asp.net-mvc oauth web-config webmatrix nuget-package


【解决方案1】:

查看 WebMatrix.WebDataWebMatrix.Data

的 Nuget 列表

https://www.nuget.org/packages/WebMatrix.Data/

https://www.nuget.org/packages/WebMatrix.WebData/

注意他们是

最后更新2013 年 5 月 31 日星期五

这些程序集被移入

Microsoft ASP.NET 网页数据 3.2.3 https://www.nuget.org/packages/Microsoft.AspNet.WebPages.Data/

Microsoft ASP.NET 网页 Web 数据 3.2.3 https://www.nuget.org/packages/Microsoft.AspNet.WebPages.WebData/

因为程序集名称的名称保持不变,但位置发生了变化,Nuget 包管理器会感到困惑——无法正确地从项目中添加/删除引用。


怎么办?

  • references中,删除对WebPages.Data和/或WebPages.WebData的任何引用
  • 在包管理器中,运行

Install-Package Microsoft.AspNet.WebPages.WebData

Install-Package Microsoft.AspNet.WebPages.Data

  • 在您的 Web 项目 中,右键单击“引用”-> 单击“添加引用”-> 单击“浏览...” 在您的包目录中导航到 packages\Microsoft.AspNet.WebPages.Data.3.2.3\lib\net45 双击WebMatrix.WebData.dll
  • 在您的 Web 项目 中,右键单击“引用”-> 单击“添加引用”-> 单击“浏览...” 在您的包目录中导航到 packages\Microsoft.AspNet.WebPages.Data.3.2.3\lib\net45 双击WebMatrix.Data.dll

终于:

在您的 Web.config 中,删除或注释掉任何对名为 WebMatrix.Data 和/或 WebMatrix.WebDatadependentAssembly 的引用

重新构建并运行

【讨论】:

  • 我已按照您的说明进行操作,现在我得到“找不到类型或命名空间名称 'WebMatrix'(您是否缺少 using 指令或程序集引用?)”
  • @Emmanuel,请对此进行扩展。您在构建过程中遇到错误吗?如果是这样,当你双击错误时,是否有 WebMatrix 的 using 语句?
  • 正确,这是一个构建错误,它使用 WebMatrix.WebData 进入语句。
  • 我认为问题是因为包 Microsoft.AspNet.WebPages.WebData 没有正确安装,所以我卸载并重新安装了它(连同所有依赖包)。现在我在运行时收到以下错误:无法加载文件或程序集 'WebMatrix.Data, Version=3.0.0.0..."
  • 清除最后一个错误。在我再次查看您的说明并将参考更新到最新版本后,此错误似乎消失了。
【解决方案2】:

所以问题是:包 Microsoft.AspNet.WebPages.WebData 没有正确安装,所以我卸载并重新安装了它(连同所有依赖包)。

为此,我跑了:

Uninstall-Package Microsoft.AspNet.WebPages.OAuth  
Uninstall-Package DotNetOpenAuth.AspNet  
Uninstall-Package DotNetOpenAuth.OAuth.Consumer 
Uninstall-Package DotNetOpenAuth.OAuth.Core 
Uninstall-Package DotNetOpenAuth.OpenId.RelyingParty 
Uninstall-Package DotNetOpenAuth.OpenId.Core  
Uninstall-Package DotNetOpenAuth.core 
Uninstall-Package Microsoft.AspNet.WebPages.WebData 

Install-Package Microsoft.AspNet.WebPages.WebData 
Install-Package DotNetOpenAuth.core 
Install-Package DotNetOpenAuth.OAuth.Core 
Install-Package DotNetOpenAuth.OpenId.RelyingParty 
Install-Package DotNetOpenAuth.OpenId.Core  
Install-Package DotNetOpenAuth.OAuth.Consumer 
Install-Package DotNetOpenAuth.AspNet  
Install-Package Microsoft.AspNet.WebPages.OAuth  

然后,我使用上面 Dave Alperovich 的说明添加了正确版本的参考资料。现在错误消失了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-11-03
    • 1970-01-01
    • 2015-09-02
    • 2013-12-08
    • 2018-09-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多