F#:Xamarin在升级FSharp.Core Nuget包后形成DLL加载错误

时间:2017-02-24 00:49:08

标签: f# xamarin.forms

我刚刚在我的Xamarin Forms项目中将FSharp.Core升级到版本4.1.0。在实例化使用F#表达式的类时,我收到运行时错误。

异常消息是

  

无法加载文件或程序集   '/storage/emulated/0/Android/data/Astrid.Mobile.Droid/files/.__覆盖__ / en-US / FSharp.Core.resources.dll'   或其中一个依赖

并且堆栈跟踪是

  

at(wrapper managed-to-native)System.Reflection.Assembly:LoadFrom   System.Reflection.Assembly.LoadFrom(System.String。(string,bool)   assemblyFile)[0x00000] in   /Users/builder/data/lanes/4009/f3074d2c/source/mono/mcs/class/corlib/System.Reflection/Assembly.cs:532   在System.Reflection.Assembly.InternalGetSatelliteAssembly上   (System.String name,System.Globalization.CultureInfo culture,   System.Version版本,System.Boolean throwOnFileNotFound,   System.Threading.StackCrawlMark&安培; stackMark)[0x000c5] in   /Users/builder/data/lanes/4009/f3074d2c/source/mono/mcs/class/corlib/System.Reflection/Assembly.cs:511

令人担忧的是,当我在谷歌上寻找FSharp.Core.resources.dll时,诈骗者已经把它拿走了。我得到的只是一堆网站,只要我下载并运行他们的“修复”,就可以解决问题。

此问题是否有修复或解决方法,不涉及下载特洛伊木马?

另外,有谁知道FSharp.Core.resources.dll甚至是什么?看起来Xamarin错误地将FSharp.Core.dll误认为是可本地化的程序集,并尝试加载相关的资源项目。

更新

在mscorlib中如此深入,有一个名为ManifestBasedResourceGroveler的类,其GrovelForResourceSet方法通过ResourceManager.GetString()由FSharp.Core.dll中的各种类调用。

它可能不是驱动Android的mscorlib的实际版本,但是从参考源https://referencesource.microsoft.com/#mscorlib/system/resources/manifestbasedresourcegroveler.cs可以清楚地看出GrovelForResourceSet正在尝试加载不存在的文件FSharp.Core。 resources.dll。不清楚的是为什么它似乎认为这个文件存在,以及我如何说服系统它不存在。

0 个答案:

没有答案