gpt4 book ai didi

f# - 无法在 C# 项目中引用 'FSharpOption<>'

转载 作者:行者123 更新时间:2023-12-04 14:40:58 24 4
gpt4 key购买 nike

我无法引用 FSharpOption<>在 Visual Studio 2015 中针对 Xamarin.Android 的 C# PCL 项目中。

这是一个 video这显示了我试图解决它的步骤。

我收到的错误如下:

The type FSharpOption<> is defined in an assembly that is not referenced. You must add a reference to assembly

FSharp.Core, Version=3.7.4.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a



注意:

我的 C# 项目确实引用了 FSharp.Core。它引用了我的 F# 项目正在使用的相同 FSharp.Core 版本:

some_path\packages\FSharp.Core.4.0.0.1\lib\portable-net45+monoandroid10+monotouch10+xamarinios10\FSharp.Core.dll

添加应用配置

我放在 Android 客户端项目中的 app.config 文件与我在测试项目中使用的 app.config 文件相同,该文件是用 F# 编写的。

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()) {
}

注意: using FSharp.Core 的语句似乎被忽略了。

我的 View 模型托管在 Visual Studio 内的 F# 项目中。

最佳答案

当我遇到类似问题时,解决方案是从两个项目(C# 和 F# 项目)中卸载 FSharp.Core,然后再次安装它,但使用 NuGet 包管理器作为解决方案(不是针对每个项目单独使用)。

因此,从两者中删除 FSharp.Core 后,转到“工具”>“NuGet 包管理器”>“管理解决方案的 NuGet 包...

在那里搜索 FSharp.Core,勾选要添加库的所有项目,然后选择要添加的版本。

那为我解决了这个问题。

编辑:另一件值得检查的事情是,任何使用 FSharp.Core 的库实际上都使用与您安装的库相同的版本。

关于f# - 无法在 C# 项目中引用 'FSharpOption<>',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39638418/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com