错误:无法加载文件或程序集&System; Net.Net.Http.Primitives,Version = 1.5.0.0 ...'

时间:2015-05-28 14:46:50

标签: c# asp.net nuget azure-webjobs linq-to-twitter

我正在使用Windows Azure Web Jobs执行我的方法以使用LinqToTwitter获取推文。我的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>

当我调试我的测试项目时,我没有收到任何错误。但在将我的web api发布到Azure之后,我在Web作业运行时遇到以下错误:

  

System.IO.FileNotFoundException:无法加载文件或程序集   &#39; System.Net.Http.Primitives,Version = 1.5.0.0,Culture = neutral,   公钥= b03f5f7f11d50a3a&#39;或其中一个依赖项。该   系统找不到指定的文件。

查看更多log info here

1 个答案:

答案 0 :(得分:1)

我解决了类似的问题,因为必须在主WPF应用程序中安装Microsoft HTTP Client Library 4.2.29.0,即使我在那里没有使用它们。 我的TESTER应用程序对我的YouTubeDataV3.DLL程序集有效,但当我尝试从WPF应用程序中使用它时(所有项目都设置为NET 4.5)。

我最初尝试手动修改app.config和C:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ config \ machine.config,但我总是看到相同的异常

  

System.IO.FileNotFoundException:无法加载文件或程序集   'System.Net.Http.Primitives,版本= 4.2.29.0 ......

     

System.IO.FileNotFoundException:无法加载文件或程序集   'System.Net.Http.Primitives,Version = 1.5.0.0,Culture = neutral,   PublicKeyToken = b03f5f7f11d50a3a'或其中一个依赖项。

我认为NuGet存在一些问题,因为它将包文件夹对等存储到解决方案中,而不是与NuGet管理的项目引用相对应。 IOW,如果您有x个客户端项目应用程序正在使用程序集“A”,其引用由NuGet管理,那么最终会在解决方案(.SLN)文件所在的地方分散x个包文件夹。这真的很难看,记住,所有垃圾:),将被复制到bin / debug和bin / release :(再一次。 多么浪费的方法。