【问题标题】:Could not load file or assembly System.Net.Http.Primitives on published executable无法在已发布的可执行文件上加载文件或程序集 System.Net.Http.Primitives
【发布时间】:2014-07-14 08:22:58
【问题描述】:

我正在使用安装了 NuGet 的 linqtotwitter (v3.0.3)。

它适用于 VS2012 .NET 4.5

但是当我尝试部署时,在运行时出现此错误;

无法加载文件或程序集 'System.Net.Http.Primitives, ... 或其依赖项之一。定位程序集的清单定义 与程序集引用不匹配。

System.Net.Http.Primitives.dll 在文件夹中。

有什么想法吗?

【问题讨论】:

    标签: c# nuget linq-to-twitter


    【解决方案1】:

    LINQ to Twitter v3.0.3 具有以下依赖项:

    System.Net.Http.dll, v4.0.0.0
    System.Net.Http.Extensions.dll, v2.2.18.0
    System.Net.Http.Primitives.dll, v4.2.18.0
    System.Net.Http.WebRequest.dll, v4.0.0.0
    

    当您安装 NuGet 包时,这些程序集也会安装并且需要与应用程序一起部署。

    有时,如果您已包含程序集,但尚未部署所有该程序集依赖项,您也会看到此错误。您可以使用反编译器或 ILDasm 来查看程序集必须确保包含所有内容的引用。我使用 Telerik 的 JustDecompile,它是免费的,它可以让您深入研究参考树以查看您需要包含的所有内容。

    【讨论】:

    • 我需要做一个update-package Microsoft.Net.Http -reinstall -ignoredependencies 来解决这个问题。
    【解决方案2】:

    我刚刚解决了同样的问题。查看您的本地 web.config 并查看已添加到运行时 > assemblyBinding 部分的内容。

    我将此添加到我的实时 web.config 中,它解决了问题。

      <dependentAssembly>
        <assemblyIdentity name="System.Net.Http.Primitives" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-4.2.22.0" newVersion="4.2.22.0" />
      </dependentAssembly>
    

    【讨论】:

      【解决方案3】:

      我在服务项目(使用 nuget)上添加了 linqtotwitter,然后在尝试在 in 上运行单元测试时出现此错误。

      我的单元测试项目已经在 app.config 中包含了“dependentAssembly”,如其他地方所述。为我解决的问题是在测试项目上也运行 nuget

      从包管理器控制台中,选择您的测试(或 Web)项目,然后运行:

      Install-Package linqtotwitter
      

      【讨论】:

        猜你喜欢
        • 2015-07-28
        • 2015-08-11
        • 2014-10-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-04-07
        • 2020-08-17
        相关资源
        最近更新 更多