Xamarin - 无法加载程序集'PCLStorage.Abstractions

Posted

技术标签:

【中文标题】Xamarin - 无法加载程序集\'PCLStorage.Abstractions【英文标题】:Xamarin - Could not load assembly 'PCLStorage.AbstractionsXamarin - 无法加载程序集'PCLStorage.Abstractions 【发布时间】:2016-05-17 20:31:51 【问题描述】:

将 FlurlHttp Nuget 包添加到我的 PCL 项目后,由于程序集加载错误,我的应用将不再部署到我的模拟器

加载程序集时出现错误异常:System.IO.FileNotFoundException:无法加载程序集“PCLStorage.Abstractions,版本=1.0.0.0,文化=中性,PublicKeyToken=286fe515a2c35b64”。也许它在 Mono for android 配置文件中不存在? 文件名:'PCLStorage.Abstractions.dll' 在 Xamarin.Android.Tuner.DirectoryAssemblyResolver.Resolve(AssemblyNameReference 参考,ReaderParameters 参数) 在 Xamarin.Android.Tasks.ResolveAssemblies.AddAssemblyReferences(ICollection1 assemblies, AssemblyDefinition assembly, Boolean topLevel) at Xamarin.Android.Tasks.ResolveAssemblies.AddAssemblyReferences(ICollection1 程序集,AssemblyDefinition 程序集,布尔***) 在 Xamarin.Android.Tasks.ResolveAssemblies.AddAssemblyReferences(ICollection`1 程序集,AssemblyDefinition 程序集,布尔***) 在 Xamarin.Android.Tasks.ResolveAssemblies.Execute() InfoSupport.AV.MobileClient.Droid C:\Program Files (x86)\MSBuild\Xamarin\Android\Xamarin.Android.Common.targets 1347

构建系统也报告冲突:

“mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089”和“mscorlib, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e, Retargetable=Yes”之间存在冲突。 (任务编号:77) 2> "mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" 被选中是因为它是主要的,而 "mscorlib, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e, Retargetable=Yes" 不是。 (任务 ID:77)

“PCLStorage.Abstractions, Version=0.9.6.0, Culture=neutral, PublicKeyToken=286fe515a2c35b64”和“PCLStorage.Abstractions, Version=1.0.0.0, Culture=neutral, PublicKeyToken=286fe515a2c35b64”之间存在冲突。 (任务 ID:142) 2> 选择“PCLStorage.Abstractions, Version=0.9.6.0, Culture=neutral, PublicKeyToken=286fe515a2c35b64”是因为它是主要的,而“PCLStorage.Abstractions, Version=1.0.0.0, Culture=neutral, PublicKeyToken=286fe515a2c35b64”不是。 (TaskId:142)

Microsoft.Build.Async (1.0.168)Microsoft.Bcl.Build(1.0.21)Microsoft.Net.Http(2.2.29)Microsoft.Bcl (1.1.10) nuget 包添加到我的 PCL 项目、Xamarin 表单项目和 Xamarin Droid 项目。

此外,还使用了 Nuget 包 Xamarin.Forms.Maps (v2.1.0.6508)Xamarin.Forms (v2.1.0.6508-pre3)

【问题讨论】:

【参考方案1】:

将 nuget 包 PclStorage v1.0.2 添加到 PCL 项目可以解决警告和部署错误。

我不确定为什么存在这种依赖关系。

【讨论】:

您应该始终将 NuGet 添加到所有项目。例如,PCL 存储具有特定于平台的实现,这很可能是它引发错误的原因。 如果将包添加到其他项目中,问题会更加直接。就目前而言,该包仅添加到 PCL 项目中。

以上是关于Xamarin - 无法加载程序集'PCLStorage.Abstractions的主要内容,如果未能解决你的问题,请参考以下文章

“System.IO.FileNotFoundException:无法加载程序集 'Xamarin.Android.Support.v13'” 用支持库 v4 替换后

加载程序集 Xamarin.Android.Support.v4 时出现异常

升级到 Visual Studio 16.11.1 后,Xamarin Forms 破坏了 XANS 7028:System.IO.FileNotFoundException:无法加载程序集“Xama

Xamarin 项目未运行,未找到程序集

无法加载文件或程序集“System.Private.CoreLib...”

Xamarin 移动应用程序 c# 中的 agsXMPP 错误