无法在已发布的可执行文件上加载文件或程序集System.Net.Http.Primitives

本文关键字:程序集 文件 System Net Primitives Http 加载 可执行文件 | 更新日期: 2023-09-27 18:05:07

我使用的是linqtotwitter (v3.0.3),安装了NuGet。

支持VS2012 .NET 4.5

但是当我尝试部署时,在运行时带走这个错误;

无法加载文件或程序集System.Net.Http。原语,……或者它的一个相关项。定位程序集的清单定义与程序集引用不匹配。

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

任何想法?

无法在已发布的可执行文件上加载文件或程序集System.Net.Http.Primitives

我刚刚修复了同样的问题。看看你当地的网站。配置并查看在runtime> assemblyBinding部分中添加了什么。

我把这个添加到我的直播网页。

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

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,它是免费的,它允许您向下钻取引用树以查看您需要包含的所有内容。

我在一个服务项目(使用nuget)上添加了linqtotwitter,然后在试图在in上运行单元测试时得到此错误。

我的单元测试项目已经在app.config中有了'dependentAssembly',正如在其他地方提到的。为我修复它的是在测试项目上运行nuget

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

Install-Package linqtotwitter