Sye*_*qas 11 .net c# wpf google-api url-shortener
我有一个使用google url shortener API的WPF(.NET 4)项目,我已经通过nugget安装了客户端库https://www.nuget.org/packages/Google.Apis.Urlshortener.v1/1.7.0.25-beta
该应用程序在Visual Studio中工作正常,但一旦发布就抛出异常无法加载文件或程序集System.Threading.Tasks,Version = 2.5.19.0这个以及所有其他程序集都存在于安装文件夹中,并且它随应用程序一起发布.我搜索了互联网,人们建议手动绑定app.config中的依赖库,它仍然不起作用,因为app.config中已经提到了我的所有依赖库,下面是我的app.config的样子
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Runtime" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-2.5.19.0" newVersion="2.5.19.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Threading.Tasks" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-2.5.19.0" newVersion="2.5.19.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Net.Http" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-2.1.10.0" newVersion="2.1.10.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Net.Http.Primitives" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-2.1.10.0" newVersion="2.1.10.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="log4net" publicKeyToken="669e0ddf0bb1aa2a" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-1.2.13.0" newVersion="1.2.13.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.Threading.Tasks.Extensions.Desktop" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-1.0.165.0" newVersion="1.0.165.0"/>
</dependentAssembly>
</assemblyBinding>
</runtime>
Run Code Online (Sandbox Code Playgroud)
Lex*_* Li 10
您可以从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不支持突出显示):
<?xmlversion="1.0"encoding="utf-8"?>
<configuration>
<runtime>
<assemblyBindingxmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentityname="System.Runtime"publicKeyToken="b03f5f7f11d50a3a"culture="neutral" />
<bindingRedirectoldVersion="0.0.0.0-2.5.19.0" newVersion="2.5.19.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentityname="System.Threading.Tasks"publicKeyToken="b03f5f7f11d50a3a"culture="neutral" />
<bindingRedirectoldVersion="0.0.0.0-2.5.19.0" newVersion="2.5.19.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>
Run Code Online (Sandbox Code Playgroud)
Lex Li的更新:
使用.NET Framework 4.0生命周期结束时,您应该在自己使用异步目标包之前三思而后行.如果此依赖项来自NuGet包,则还应检查NuGet包是否具有不具有此依赖性的较新版本.
| 归档时间: |
|
| 查看次数: |
27106 次 |
| 最近记录: |