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

时间:2014-05-25 12:25:12

标签: c# nuget linq-to-twitter

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

它正在使用VS2012 .NET 4.5

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

  

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

System.Net.Http.Primitives.dll位于文件夹中。

有什么想法吗?

3 个答案:

答案 0 :(得分:4)

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

我将此添加到我的live 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>

答案 1 :(得分: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,它是免费的,它可以让你深入了解参考树,看看你需要包含的所有东西。

答案 2 :(得分:1)

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

我的单元测试项目已经拥有了“依赖组件”。在app.config中,如其他地方所述。修复它对我来说是在测试项目上运行nuget

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

Install-Package linqtotwitter