无法加载文件或程序集“System.Net.Http.Formatting-Cosmo”

Posted

技术标签:

【中文标题】无法加载文件或程序集“System.Net.Http.Formatting-Cosmo”【英文标题】:Could not load file or assembly 'System.Net.Http.Formatting-Cosmo' 【发布时间】:2018-02-20 02:40:36 【问题描述】:

这个错误刚刚开始突然发生。使用 Visual Studio 2017,System.Net.Http.Formatting 问题已经好几年没有提出来了。

我只在网页上看到这条消息:

或其依赖项之一。找到的程序集的清单定义与程序集引用不匹配。 (HRESULT 异常:0x80131040)

连同回溯:

     === Pre-bind state information ===
 LOG: DisplayName = System.Net.Http.Formatting-Cosmo
  (Partial)
 WRN: Partial binding information was supplied for an assembly:
 WRN: Assembly Name: System.Net.Http.Formatting-Cosmo | Domain ID: 2
 WRN: A partial bind occurs when only part of the assembly display name is provided.
 WRN: This might result in the binder loading an incorrect assembly.
 WRN: It is recommended to provide a fully specified textual identity for the assembly,
 WRN: that consists of the simple name, version, culture, and public key token.
 WRN: See whitepaper http://go.microsoft.com/fwlink/?LinkId=109270 for more information and common solutions to this issue.
 LOG: Appbase = file:///C:/Users/George/OneDrive/SignupList/SignupList/
 LOG: Initial PrivatePath = C:\Users\George\OneDrive\SignupList\SignupList\bin
 Calling assembly : (Unknown).
 ===
 LOG: This bind starts in default load context.
 LOG: Using application configuration file: C:\Users\George\OneDrive\SignupList\SignupList\web.config
 LOG: Using host configuration file: C:\Users\George\OneDrive\IISExpress\config\aspnet.config
 LOG: Using machine configuration file from C:\Windows\Microsoft.NET\Framework\v4.0.30319\config\machine.config.
 LOG: Policy not being applied to reference at this time (private, custom, partial, or location-based assembly bind).
 LOG: Attempting download of new URL file:///C:/Users/George/AppData/Local/Temp/Temporary ASP.NET Files/vs/6cc2628d/51b3c1a6/System.Net.Http.Formatting-Cosmo.DLL.
 LOG: Attempting download of new URL file:///C:/Users/George/AppData/Local/Temp/Temporary ASP.NET Files/vs/6cc2628d/51b3c1a6/System.Net.Http.Formatting-Cosmo/System.Net.Http.Formatting-Cosmo.DLL.
 LOG: Attempting download of new URL file:///C:/Users/George/OneDrive/SignupList/SignupList/bin/System.Net.Http.Formatting-Cosmo.DLL.
 WRN: Comparing the assembly name resulted in the mismatch: NAME
 ERR: Failed to complete setup of assembly (hr = 0x80131040). Probing terminated.

似乎停止尝试在配置中查找具有正确版本的 DLL 的 System.Net.Http.Formatting。

  <dependentAssembly>
    <assemblyIdentity name="System.Net.Http.Formatting" publicKeyToken="31bf3856ad364e35" culture="neutral" />
    <bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="5.2.3.0" />
  </dependentAssembly>

我使用的是 ASP.NET 但不是 MVC,我不知道为什么需要 System.Net.Http.Formatting。 Cosmo 是我电脑的名称。我希望 -Cosmo 不是问题,我不明白为什么会出现。

我完成了 Stack Overflow 上一篇 4 年前的帖子中提到的所有事情 - Could not load file or assembly 'System.Net.Http.Formatting' or one of its dependencies. The system cannot find the path specified 没有解决它。我找到了其他帖子并使用了 Microsoft.AspNet.WebApi.Core V 5.2.4,它放置了 System.Net.Http.Formatting V 5.2.3.0。

System.Net.Http.Formatting Reference 上的 Local Copy 属性设置为 True。她重新收到的所有包裹。该项目已重新初始化。我已经尝试了我能找到的所有建议。

如果没有 Microsoft.AspNet.WebApi.Core,如果我编译我会收到编译错误,抱怨 System.Net.Http.Formatting 丢失。添加核心,错误消失,编译正常。由于依赖关系,我还必须使用 Microsoft.AspNet.WebApi.Core 删除并重新添加 Microsoft.AspNet.WebApi.WebHost。该网页在运行时会给出错误以及我的项目中每个 ASPX 文件的第一行。

我也有 Newtonsoft.Json,我见过与此相关的。

      <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="WebGrease" culture="neutral" publicKeyToken="31bf3856ad364e35" />
        <bindingRedirect oldVersion="0.0.0.0-1.6.5135.21930" newVersion="1.6.5135.21930" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="EntityFramework" publicKeyToken="b77a5c561934e089" />
        <bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="Microsoft.Owin" culture="neutral" publicKeyToken="31bf3856ad364e35" />
        <bindingRedirect oldVersion="0.0.0.0-3.0.1.0" newVersion="3.0.1.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="Microsoft.Owin.Security.OAuth" culture="neutral" publicKeyToken="31bf3856ad364e35" />
        <bindingRedirect oldVersion="0.0.0.0-3.0.1.0" newVersion="3.0.1.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="Microsoft.Owin.Security.Cookies" culture="neutral" publicKeyToken="31bf3856ad364e35" />
        <bindingRedirect oldVersion="0.0.0.0-3.0.1.0" newVersion="3.0.1.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="Microsoft.Owin.Security" culture="neutral" publicKeyToken="31bf3856ad364e35" />
        <bindingRedirect oldVersion="0.0.0.0-3.0.1.0" newVersion="3.0.1.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="System.Web.Http" publicKeyToken="31bf3856ad364e35" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="5.2.3.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="Telerik.Web.UI" publicKeyToken="121fae78165ba3d4" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-2014.3.1209.45" newVersion="2014.3.1209.45" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="Antlr3.Runtime" publicKeyToken="eb42632606e9261f" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-3.5.0.2" newVersion="3.5.0.2" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-8.0.0.0" newVersion="8.0.0.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="Google.Apis" publicKeyToken="4b01fa6e34db77ab" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-1.25.0.0" newVersion="1.25.0.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="Google.Apis.Core" publicKeyToken="4b01fa6e34db77ab" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-1.25.0.0" newVersion="1.25.0.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="System.Net.Http.Formatting" publicKeyToken="31bf3856ad364e35" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="5.2.3.0" />
      </dependentAssembly>
    </assemblyBinding>
  </runtime>

程序集正在寻找 System.Net.Http.Formatting-Cosmo 并尝试下载它。 System.Net.Http.Formatting 在 bin 中,我什至添加了 System.Net.Http.Formatting-Cosmo 以防万一。版本匹配。为什么找不到 bin DLL? -Cosmo 有问题吗?

令人费解。

乔治

【问题讨论】:

看到这个链接可能对你有帮助***.com/questions/32668590/… 【参考方案1】:

它现在已修复,但我不确定它是如何修复的,因为我尝试了很多不同的东西,包括更新 Visual Studio 和摆脱旧的 Visual Studio,它们并没有解决问题,但确实改变了一点。

我注意到 System.Net.Http.Formatting.dll 的版本是 5.2.60201.0。环顾四周,我发现 Microsoft.AspNet.WebApi.Client 也可能参与其中。

使用 NuGet 包管理器,我删除了 Microsoft.AspNet.WebApi.WebHost、Microsoft.AspNet.WebApi.Core 和 Microsoft.AspNet.WebApi.Client。然后我反向重新添加了所有 3 个中的最新版本 5.2.4。客户端包是 5.2.2。

现在 Web.config 中 System.Net.Http.Formatting 的dependentAssembly 有 newVersion="5.2.4.0"。 DLL 上的版本是 5.2.60201.0,所以我期待它会看到问题,但它确实有效。寻找 System.Net.Http.Formatting 版本 5.2.4.0 似乎发现 5.2.60201.0 就好了,而 5.2.3.0 则找不到。

正如我认为更好地理解它一样,它运行良好。肯定是一次学习体验。

最后我相信,

Microsoft.AspNet.WebApi.WebHost Microsoft.AspNet.WebApi.Client Microsoft.AspNet.WebApi.Core

都应该是在 NuGet 管理器的依赖项中确认的相同版本。

【讨论】:

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

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

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

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

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

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

寻找解决策略:无法加载文件或程序集[重复]