无法加载文件或程序集System.Threading.Tasks,Version = 2.5.19.0

我有一个使用google url shortener API的WPF(.NET 4)项目,我已经通过nugget安装了客户端库https://www.nuget.org/packages/Google.Apis.Urlshortener.v1/1.7.0.25-beta

该应用程序在Visual Studio中工作正常,但一旦发布就抛出exception无法加载文件或程序集System.Threading.Tasks,Version = 2.5.19.0这个以及所有其他程序集都存在于安装文件夹中,并且它随应用程序一起发布。 我搜索了互联网,人们建议手动绑定app.config中的依赖库,它仍然不起作用,因为app.config中已经提到了我的所有依赖库,下面是我的app.config看起来像

                            

您可以从Microsoft BCL团队博客开始,通过删除错误的条目来清理app.config,

http://blogs.msdn.com/b/bclteam/p/asynctargetingpackkb.aspx

问题6

症状

将NuGet包添加到由具有不同目标框架的另一个项目使用的项目时,您可能会看到类似于以下内容的警告:

无法解析主要参考“Microsoft.Threading.Tasks,Version = 1.0.12.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a,processorArchitecture = MSIL”,因为它对框架程序集“System.Runtime,Version = 2.5具有间接依赖性” .19.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a“无法在当前目标框架中解析。 ” .NETFramework,版本= V4.5″ 。 要解决此问题,请删除引用“Microsoft.Threading.Tasks,Version = 1.0.12.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a,processorArchitecture = MSIL”或将应用程序重新定位到包含“System.Runtime,Version”的框架版本= 2.5.19.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a“。

无法解析主要参考“Microsoft.Threading.Tasks.Extensions,Version = 1.0.12.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a,processorArchitecture = MSIL”,因为它对框架程序集“System.Runtime,Version”具有间接依赖性= 2.5.19.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a“无法在当前目标框架中解析。 ” .NETFramework,版本= V4.5″ 。 要解决此问题,请删除引用“Microsoft.Threading.Tasks.Extensions,Version = 1.0.12.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a,processorArchitecture = MSIL”或将应用程序重新定位到包含“System.Runtime”的框架版本,Version = 2.5.19.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a“。

问题是NuGet为平台程序集添加了错误的绑定重定向。 要删除它们,请打开导致警告的项目的app.config并删除突出显示的条目( StackOverflow不支持突出显示 ):

                 

Lex Li更新:

在.NET Framework 4.0生命周期结束时,您应该在自己使用异步目标包之前三思而后行。 如果此依赖项来自NuGet包,则还应检查NuGet包是否具有不具有此依赖性的较新版本。

我在UWP项目(VS2015)中遇到了一个非常类似的问题(“无法加载文件或程序集Microsoft.Threading.Tasks,Version = 1.0.12.0”),我通过从NuGet安装Microsoft.Bcl.Async软件包解决了这个问题

我有完全相同的问题,但它是由程序集Microsoft.Rest.ClientRuntime引起的。 在我的情况下,我所要做的就是在对Microsoft.Rest.ClientRuntime的引用上设置“Copy local = True”。