f# – 无法在C#项目中引用’FSharpOption <>'
我无法引用FSharpOption<>在我的C#PCL项目中,针对Visual Studio 2015中的Xamarin.
Android.
这是一个video,显示了我尝试解决它的步骤. 我收到的错误如下:
注意: 我的C#项目参考FSharp.Core.它引用了我的F#项目正在使用的相同FSharp.Core版本: some_pathpackagesFSharp.Core.4.0.0.1libportable-net45+monoandroid10+monotouch10+xamarinios10FSharp.Core.dll 添加App配置 我放在Android客户端项目中的app.config文件与我在我用F#编写的测试项目中使用的app.config文件相同. app.config如下: <?xml version="1.0" encoding="utf-8"?> <configuration> <runtime> <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <dependentAssembly> <assemblyIdentity name="FSharp.Core" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/> <bindingRedirect oldVersion="0.0.0.0-999.999.999.999" newVersion="4.4.0.0" /> </dependentAssembly> </assemblyBinding> </runtime> </configuration> 任何人都可以向我提供有关在我的C#项目中引用FSharp.Core功能所需步骤的指导吗? 更新 我有另一个类在同一个C#项目中成功引用FSharp.Core: static class Utility { public static bool IsSome(this FSharpOption<string> option) => FSharpOption<string>.get_IsSome(option); public static bool IsNone(this FSharpOption<string> option) => FSharpOption<string>.get_IsNone(option); } 上面的代码似乎不会导致任何编译错误.同样,此文件与我的其他文件位于同一项目中,确实会导致错误. 导致错误的代码如下: using Microsoft.FSharp.Core; // . . . if (_viewModel.FamilySummary.IsSome()) { } 注意: 我的viewmodel托管在Visual Studio内的一个F#项目中. 解决方法
当我遇到类似的问题时,解决方案是从两个项目(C#和F#one)卸载FSharp.Core,然后再次安装它,但使用NuGet包管理器解决方案(不是单独为每个项目).
因此,从两者中删除FSharp.Core后转到Tools> NuGet包管理器>管理NuGet包以获得解决方案…… 搜索FSharp.Core,勾选要添加库的所有项目,然后选择要添加的版本. 这为我解决了这个问题. 编辑:另一件值得检查的事情是,任何使用FSharp.Core的库实际上使用的是与您安装的版本相同的版本. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |