gpt4 book ai didi

c# - 在 CoreCLR 中运行 F#

转载 作者:太空狗 更新时间:2023-10-29 18:16:00 25 4
gpt4 key购买 nike

我编译了CoreCLRCoreFX如所述here .基本上这行得通,我可以编译和运行针对 CoreCLR 的 C# 代码。
下一步是尝试编译和运行 F# 代码。所以我添加了 FSharp.Core 3.1.2.1添加到项目并使用以下命令编译示例应用程序:

fsc ^
--noframework ^
--targetprofile:netcore ^
/r:packages\System.Runtime.4.0.20-beta-22703\lib\contract\System.Runtime.dll ^
/r:packages\System.Reflection.4.0.10-beta-22703\lib\contract\System.Reflection.dll ^
/r:packages\System.Collections.4.0.10-beta-22703\lib\contract\System.Collections.dll ^
/r:packages\System.Diagnostics.Debug.4.0.10-beta-22703\lib\contract\System.Diagnostics.Debug.dll ^
/r:packages\System.IO.FileSystem.4.0.0-beta-22703\lib\contract\System.IO.FileSystem.dll ^
/r:packages\System.Linq.Expressions.4.0.10-beta-22703\lib\contract\System.Linq.Expressions.dll ^
/r:packages\System.Console.4.0.0-beta-22703\lib\contract\System.Console.dll ^
/r:packages\System.Runtime.Extensions.4.0.10-beta-22703\lib\contract\System.Runtime.Extensions.dll ^
/r:packages\System.Runtime.InteropServices.4.0.20-beta-22703\lib\contract\System.Runtime.InteropServices.dll ^
/r:packages\System.Text.Encoding.4.0.10-beta-22703\lib\contract\System.Text.Encoding.dll ^
/r:packages\System.Text.RegularExpressions.4.0.10-beta-22703\lib\contract\System.Text.RegularExpressions.dll ^
/r:packages\System.Threading.Overlapped.4.0.0-beta-22703\lib\contract\System.Threading.Overlapped.dll ^
/r:packages\System.Threading.ThreadPool.4.0.10-beta-22703\lib\contract\System.Threading.ThreadPool.dll ^
/r:packages\FSharp.Core.3.1.2.1\lib\portable-net45+netcore45+MonoAndroid1+MonoTouch1\FSharp.Core.dll ^
/out:runtime\HelloWorld.exe HelloWorld.fs

如你所见,我是根据 Profile7 构建的FSharp.Core 的。当我运行应用程序时,语句 let test = sprintf "Hello, world" 失败并出现以下异常:

Unhandled Exception: System.IO.FileNotFoundException: Could not load file or assembly 'System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e' or one of its dependencies. The system cannot find the file specified.
at Microsoft.FSharp.Core.PrintfImpl.PrintfBuilderStack..ctor()
at Microsoft.FSharp.Core.PrintfImpl.PrintfBuilder`3..ctor()
at Microsoft.FSharp.Core.PrintfImpl.Cache`4.generate(String fmt)
at Microsoft.FSharp.Core.PrintfImpl.f@4277-43[T,TState,TResidue,TResult](String key, Unit unitVar0)
at Microsoft.FSharp.Core.PrintfImpl.Cache`4.get(String key)
at Microsoft.FSharp.Core.PrintfImpl.Cache`4.Get(PrintfFormat`4 key)
at Microsoft.FSharp.Core.PrintfModule.PrintFormatToStringThen[TResult,T](FSharpFunc`2 continutation, PrintfFormat`4 format)
at HelloWorld.main(String[] args)

我也讨论过这个here但我不知道我做错了什么。我是否包含了错误版本的 FSharp.Core?简介7 should work .

最佳答案

在撰写本文时(2015 年 4 月),F# 尚未移植到完全支持 CoreCLR/CoreFX。

CoreCLRCoreFX目前在开发过程中正在进行大量更改和改进。在接下来的几个月中,流失率将减少,稳定性将迅速提高,但此时在 CoreCLR/FX 上构建任何实质性内容都将类似于在流沙上 build 摩天大楼。

目前用于在 [LI|U]N[U|I]X 上构建和运行 F# 的 Mono v.next 也经历了很多变化,因为它取代了 Mono 平台和框架的大部分内容来自 CoreCLR 和 CoreFX 的程序集和代码。

您可能想要跟踪 Visual F# issue #387进步。

您可能还想跟踪 Visual F# issue #336其中讨论了在 CoreCLR 上支持 F# 以进行 x 平台工作。

更新1:

现在 F# 4.0 已经发布,团队正在开展一系列新工作:https://github.com/Microsoft/visualfsharp/issues/563

这些工作项目中的关键是向 F# 添加 CoreCLR 支持:https://github.com/Microsoft/visualfsharp/issues/499 .

关于c# - 在 CoreCLR 中运行 F#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29798696/

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