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(ICollection
1 assemblies, AssemblyDefinition assembly, Boolean topLevel) at Xamarin.Android.Tasks.ResolveAssemblies.AddAssemblyReferences(ICollection
1 程序集,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